EditText的输入检测

  在开发的工程中有时会遇到要对EditText的输入进行检测,例如检测用户输入是否符合某些特定规则(比如密码要包含大小写字母数字等等)或者及时判断用户是否输入了字符,对界面进行即时的更改等等。其实EditText为我们提供一个很方便的监听器,我们只需要实现它的方法就可以解决这个看似困难的问题了。

Java代码

  我们只需要为EditText添加一个addTextChangedListener并且实现其中的方法即可。示例代码如下:

        invite_key_edit.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void afterTextChanged(Editable editable) {

            }
        });

其中

  • 函数public void beforeTextChanged用于即时检测用户在更改字符前触发,触发后执行相应操作(需要注意的是输入字符前的定义是,用户一定要输入字符,即对EditText的内容进行更改才会触发这个函数,而只是点击EditText而没做出任何更改是不会触发函数的!!)

  • 函数public void onTextChanged用于即时检测用户在更改EditText字符时触发,触发后执行相应方法。触发注意事项同上

  • 函数public void afterTextChanged用于即时检测用户在更改EditText字符后触发。这是最常使用到的一个方法,触发注意事项同上


  实现这个监听器后可以使EditText做到更多事情,使原本复杂的代码变得更加简单。


初めて会ったの日から 僕の心の全てを奪った