getText vs onTextChanged charSequence

时间:2014-01-26 02:30:56

标签: java android string android-edittext

我正在学习如何编写Android应用程序,并有一个问题。使用TextWatcher和onTextChanged方法之间有什么区别,设置一个等于CharSequence参数的字符串值,并简单地使用getText方法。

private TextWatcher passwordListener = new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {

        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
            try{
                password = charSequence.toString();
            }

            catch(Exception e){
                password=null;
            }
        }

VS

password = password_EditText.getText().toString();

2 个答案:

答案 0 :(得分:1)

如果您希望收到文本已更改的通知,并且需要对该事件本身进行直接响应,则可以使用文本观察程序。例如,如果您想要动态进行一些自定义验证,并根据输入的值自动启用/禁用按钮。

使用getText只是返回特定时间编辑文本字段中的内容。如果您想通过其他事件(如按钮单击)获取文本值,则可以使用此选项。

答案 1 :(得分:0)

TextWatcher可以动态监听文本changge,更强大的文本处理.getText()是静态获取。