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

来源:互联网 发布:php 多级分销商城源码 编辑:程序博客网 时间:2024/06/10 23:03

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) {       }   });}







0 0