Android开发限制edittext只能输入小数点后两位数,小数点前8位(代码实现)
程序员文章站
2022-10-16 15:51:09
android开发限制edittext只能输入小数点后两位数,小数点前8位(代码实现)
/**
* 限制edittext只能输入小数点后两位数,小数点前8位
*/
public sta...
android开发限制edittext只能输入小数点后两位数,小数点前8位(代码实现)
/** * 限制edittext只能输入小数点后两位数,小数点前8位 */ public static void setpricepoint(final edittext edittext) { edittext.addtextchangedlistener(new textwatcher() { @override public void ontextchanged(charsequence s, int start, int before, int count) { if (s.tostring().contains(".")) { if (s.length() - 1 - s.tostring().indexof(".") > 2) { s = s.tostring().subsequence(0, s.tostring().indexof(".") + 3); edittext.settext(s); edittext.setselection(s.length()); } } else { if (s.length() > 8) { edittext.settext(s.subsequence(0, 8)); edittext.setselection(s.length() - 1); } } if (s.tostring().trim().substring(0).equals(".")) { s = "0" + s; edittext.settext(s); edittext.setselection(2); } if (s.tostring().startswith("0") && s.tostring().trim().length() > 1) { if (!s.tostring().substring(1, 2).equals(".")) { edittext.settext(s.subsequence(0, 1)); edittext.setselection(1); return; } } } @override public void beforetextchanged(charsequence s, int start, int count, int after) { } @override public void aftertextchanged(editable s) { // todo auto-generated method stub } }); }