java - 使用edittext在android中以0.00格式格式化价格

标签 java android

我正在尝试屏蔽价格值,以便它始终采用 0.00 格式。这是我的代码

float temp = 0;

DecimalFormat mDecimalFormat = new DecimalFormat("###.00");

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {

    if(s.toString()!=null)
    {

        mMasEditText.removeTextChangedListener(this);
        temp = Float.parseFloat(s.toString());
        mMasEditText.setText(""+mDecimalFormat.format(addNumber(temp)));
        mMasEditText.setSelection(start+1);
        mMasEditText.addTextChangedListener(this);

    }
}

public float addNumber(float numTemp){
    float result=0.00f;
    result = numTemp + result;
    return result;
}

但是当我按下小数点时,我希望光标再移动一步。但我无法获得点回调。此外,当我按下后退按钮以删除数字时,我得到一个索引超出范围的异常。谁能告诉我如何在 onTextChanged 监听器之前获得后退按钮和点按钮回调?

最佳答案

格式化货币和价格的推荐方式:

    Locale loc = Locale.getDefault();
    NumberFormat nf = NumberFormat.getCurrencyInstance(loc);
    nf.setCurrency(Currency.getInstance(loc));
    nf.setMaximumFractionDigits(2);
    nf.setMinimumFractionDigits(2);

    System.out.println(nf.format(23.5634));
    System.out.println(nf.format(0.5));

关于java - 使用edittext在android中以0.00格式格式化价格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16675156/

相关文章:

java - 自定义类型/转换器与 Hibernate 的 Transformers.aliasToBean 结合使用

java - 手机上不存在表,但模拟器上一切正常

Android 外部应用程序无法访问应用程序的文件

java - 调用 onSearchRequested 时搜索对话框未激活 (Android)

java - 从 JNI 操作 ByteBuffer

java - 如何使用 Spring Java 应用程序使 IBM MQ 监听器进程缓慢

java - Maven Surefire 并行测试中跳过测试的非确定性行为

android - 如何更改android中的应用程序名称

android - 在 fragment 中刷新 fragment

android - POJO类的本质