首先限制edittext仅能输入数字和小数点的代码就一句话:
et1.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
然后设置限制小数点后四位,并且以数字0开头后只能输入小数点的代码如下:
if (s.toString().contains(".")) {
if (s.length() - 1 - s.toString().indexOf(".") > 4) { //此处4是小数点后几位,几位就是几,例如如果4位就是4
s = s.toString().subSequence(0,
s.toString().indexOf(".") + 5); //此处5是小数点后几位+1,几位就是几+1,例如如果4位就是5
et1.setText(s);
et1.setSelection(s.length());
}
}
if (s.toString().trim().substring(0).equals(".")) {
s = "0" + s;
et1.setText(s);
et1.setSelection(4);
}
if (s.toString().startsWith("0")
&& s.toString().trim().length() > 1) {
if (!s.toString().substring(1, 2).equals(".")) {
et1.setText(s.subSequence(0, 1));
et1.setSelection(1);
return;
}
}