如何为特定数字设置 EditText 侦听器?

How to set a EditText listener for specific numbers?

我想要应用程序中我的 EditText 字段的侦听器,它应该侦听我想到的特定数字行。

例如: 如果用户输入数字“12345”并按下按钮,则必须显示 toast 消息。如果用户输入除“12345”以外的其他数字,button 必须 运行 他的主要功能。

我想把它作为我应用程序中的一个小复活节彩蛋。

EditText 允许您添加 TextWatcher 视图 addTextChangedListener(TextWatcher):

假设您有:

EditText mEditText = (EditText) findViewById(R.id.my_edit_text);

然后我们可以给它添加一个 TextWatcher:

// Add the TextChangeListener which is a TextWatcher
mEditText.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) {
             //... For listening to text on the fly
             if(s.toString().equals("12345")){
                  Toast.makeText(MyActivity.this, "Some message" Toast.LENGHT_SHORT).show();
              }
            }

            @Override
            public void afterTextChanged(Editable s) {
               //... for a callback after text is changed
            }
        });

添加一个 onTextChanged 监听器

mEditText.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)
        {
            if(mEditText.getText().toString().equals("12345"))
               //do stuff
        }

        @Override
        public void afterTextChanged(Editable s)
        {

        }
    });

只需使用 If 语句检查 editText 的值,例如:

 if(editText.getText().equals("12345"))
 {
 Toast.makeText(getApplicationContext(), "Message is 12345",Toast.LENGTH_SHORT).show();
 }

希望对您有所帮助。

详细说明@Kristo1990 的回答:

EditText editText = (EditText) findViewById(R.id.my_edit_text);

然后按下按钮:

if (editText.getText().toString().equals("12345")) {
    Toast.makeText(getApplicationContext(), "Message is 12345", Toast.LENGTH_SHORT).show();
} else {
    someOtherMethod();
}

比不必要的更安全(更轻)TextWatcher