使用edittext在android中格式化0.00格式的价格

我试图屏蔽价格值,使其始终为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; } 

但是当我按下十进制时,我希望光标再向前迈一步。 但我无法获得点回调。 此外,当我按下后退按钮,删除数字时,我得到一个索引超出约束的exception。 任何人都可以告诉我如何在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)); 

使用String.format

  String.format("$%.2f", result); 

要么

  Strint text = String.format("$%.2f", addNumber(temp)); mMasEditText.setText(text)