当前位置: 代码迷 >> 综合 >> [Android]设置EditText输入金额时:设置格式和去除前面的0
  详细解决方案

[Android]设置EditText输入金额时:设置格式和去除前面的0

热度:77   发布时间:2024-01-25 23:28:19.0

使用一下的TextWatcher:

new TextWatcher() {@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, int after) {}@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {}@Overridepublic void afterTextChanged(Editable s) {//  判断金额字符正确性float m = 0;try {if (StringUtil.isEmpty(s.toString())) m = 0;else m = Float.valueOf(s.toString());} catch (NumberFormatException e) {s = s.replace(0, s.length() - 1, "0");}//  判断小数点的准确性if (s.toString().contains(".")&& s.toString().split("\\.").length > 1&& s.toString().split("\\.")[1].length() > 2){s = s.delete(s.length()-1, s.length());}//  判断最大最小值if (m > 200){s = s.replace(0, s.length(), "200");} else if (m < 0.01){s = s.replace(0, s.length(), "0.01");}//  处理前排的0if (s.toString().length() > 1 && String.valueOf(s.toString().charAt(0)).equals("0") && !String.valueOf(s.toString().charAt(1)).equals(".")) {s = s.delete(0,1);}tvPrice.setText(s.toString());if (m == 0) {tvSend.setEnabled(false);tvSend.setAlpha(0.5f);}else {tvSend.setEnabled(true);tvSend.setAlpha(1f);}}}

一开始还以为简单呢,结果捣鼓了3/4个小时才捣鼓出这个来,感觉时间都浪费的一批,哭唧唧

  相关解决方案