Android中限定Edittext的输入内容
2016-12-20 本文已影响84人
Mr_冯先生
限定输入Edittext的内容为常用的价格(小数点后最多两位)
/**
* 限定价格为输入editText的输入条件
*
* @param s editText在onTextChanged方法中的CharSequence s
* @param editText 当前editMoney.isFocused()为true的editText控件
*/
public static void edit(CharSequence s, EditText editText) {
if (s.toString().contains(".")) {
if (s.length() - 1 - s.toString().indexOf(".") > 2) {//小数点之后只能输入两位
s = s.subSequence(0, s.toString().indexOf(".") + 3);
editText.setText(s);
editText.setSelection(s.length());
}
}
if (s.length() > 0 && s.charAt(0) == '.') {//小数点前至少有一位
editText.setText("0" + s);
editText.setSelection(s.length() + 1);
}
if (s.length() > 1 && s.charAt(0) == '0' && s.charAt(1) != '.') {//大于1的数前面不能有0
editText.setText(s.subSequence(1, s.length()));
editText.setSelection(s.length() - 1);
}
}