edittext只能输入数字和小数点,且小数点后只能输入两位

1.在edittext的xml中输入属性

android:inputType="numberDecimal"

2.在edittext的监听中

  et_dollar.addTextChangedListener(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) {
           //  numInt = TextUtils.isEmpty(num) ? 1 : Integer.parseInt(num);
           //优惠券必须要达到的金额Integer.parseInt(fullPrice);

           if (s.toString().contains(".")) {
               if (s.length() - 1 - s.toString().indexOf(".") > 2) {
                   s = s.toString().subSequence(0,
                           s.toString().indexOf(".") + 3);
                   et_dollar.setText(s);
                   et_dollar.setSelection(s.length());
               }
           }
           if (s.toString().trim().substring(0).equals(".")) {
               s = "0" + s;
               et_dollar.setText(s);
               et_dollar.setSelection(2);
           }

           if (s.toString().startsWith("0")
                   && s.toString().trim().length() > 1) {
               if (!s.toString().substring(1, 2).equals(".")) {
                   et_dollar.setText(s.subSequence(0, 1));
                   et_dollar.setSelection(1);
                   return;
               }
           }

           if(s.toString().trim().substring(0,1).equals(".") || s.toString().trim().substring(s.toString().trim().length()-1,s.toString().trim().length()).equals(".")){
               return;
           }
           float couponPrice = TextUtils.isEmpty(fullPrice) ? 0 : Float.parseFloat(fullPrice);
           //输入的面值
           float price = TextUtils.isEmpty(s) ? 0 : Float.parseFloat(s.toString());
           //优惠卷的面值
           float intfacePrice = TextUtils.isEmpty(facePrice) ? 0 : Float.parseFloat(facePrice);
           if(price < couponPrice){
               mCoupon.setVisibility(View.GONE);
               tv_price.setText(null);
               mPayText.setText(String.valueOf(price));
               couponId = "0";
               fullPrice =null;
               facePrice = null;
           }else {
               mPayText.setText(String.valueOf(price - intfacePrice));
           }
       }
       @Override
       public void afterTextChanged(Editable s) {


       }
   });
}







  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值