使用一下的TextWatcher:
new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public 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");
}
// 处理前排的0
if (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个小时才捣鼓出这个来,感觉时间都浪费的一批,哭唧唧