Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何为特定数字设置EditText侦听器?_Android_Button_Android Edittext_Keyword_Toast - Fatal编程技术网

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

Android 如何为特定数字设置EditText侦听器?,android,button,android-edittext,keyword,toast,Android,Button,Android Edittext,Keyword,Toast,我希望在应用程序中为我的EditText字段设置一个侦听器,它应该侦听我想到的特定行的数字 例如: 如果用户键入数字“12345”并按下按钮,则必须显示toast消息。如果用户键入的数字不是“12345”,则按钮必须运行其主功能 我希望它在我的应用程序中成为一个小小的复活节彩蛋。EditText允许您添加TextWatcher视图addTextChangedListener(TextWatcher): 假设您有: EditText mEditText = (EditText) findViewB

我希望在应用程序中为我的
EditText
字段设置一个侦听器,它应该侦听我想到的特定行的数字

例如: 如果用户键入数字“12345”并按下按钮,则必须显示
toast
消息。如果用户键入的数字不是“12345”,则
按钮必须运行其主功能


我希望它在我的应用程序中成为一个小小的复活节彩蛋。

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

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

添加一个ContextChanged侦听器

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

        }
    });

添加一个ContextChanged侦听器

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

希望有帮助。

只需使用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();
}

比不必要的
文本观察者更安全(更轻)

Ellaborating@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

editText.getText().equals(“12345”)?相比,更安全(更轻)但如何运行特定操作?只需维护一个允许的数字或文本列表,并在按钮的onClick侦听器中对其进行检查。只需放置一个if循环并运行特定操作。editText.getText().equals(“12345”)但如何运行特定操作呢?只需维护一个允许的数字或文本列表,并在按钮的onClick侦听器中对照它进行检查。只需放置一个if循环并运行特定操作。这里的任何答案都会起作用,谢谢:)!你的更干净。创建TextWatcher容易出现很多ANR,使用一种简单的方法获取文本更“安全”,但我会改进它。editText.getText().toString()只是为了安全;)说得好,对于
toString()
方法。关于textWatcher我不会说太多,因为我还没有读到任何关于它的文章。但是,你知道很多程序员是怎么做的,如果可行的话。这里的任何答案实际上都是可行的,谢谢你:)!你的更干净。创建TextWatcher容易出现很多ANR,使用一种简单的方法获取文本更“安全”,但我会改进它。editText.getText().toString()只是为了安全;)说得好,对于
toString()
方法。关于textWatcher我不会说太多,因为我还没有读到任何关于它的文章。但是,你知道很多程序员是怎么做的,如果可行的话。