使用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)