android EditText 实时监听输入框的内容

在开发中很多时候我们都会用到EditText,对输入内容的实时监听也是不可或缺的。

在android中为我们提供了TextWatcher这个类,我们只要extends这个类然后etColler.addTextChangedListener(editclick);就可以实时监听了。

例:我们写一个文本框

            android:id="@+id/et_coller"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center_vertical"
            android:hint="请输入"
          />

然后在activity:

private TextWatcher editclick = 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) {


        }

//一般我们都是在这个里面进行我们文本框的输入的判断,上面两个方法用到的很少
        @Override
        public void afterTextChanged(Editable s) {
            String money = etColler.getText().toString();
            Pattern p = Pattern.compile("[0-9]*");
            Matcher m = p.matcher(money);
            if (m.matches()) {


            } else {
                ToastUtil.toastCenter(BuyCuurseActivity.this, "请输入正确的缴费金额");
                etColler.setText("");
            }
        }
    };

在这里我判断的是EditText输入的是不是数字,用到了正则表达式。假如你要判断输入的是汉字p=Pattern.compile("[\u4e00-\u9fa5]");判断输入的是子母:p=Pattern.compile("[a-zA-Z]"); 

你可能感兴趣的:(android)