EditText实现只能输入数字和小数点,限制小数点后?位,并且以数字0开头后只能输入小数点

        首先限制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;  
           }  
 }        


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值