使用一下的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个小时才捣鼓出这个来,感觉时间都浪费的一批,哭唧唧