如何在不点击按钮的情况下执行任何功能只需在edittext中输入值?

时间:2014-03-03 10:17:22

标签: android android-edittext textwatcher

我创建了多个EditText,之后我们得到了每个EditText的值,但现在我想将该值与给定的字符串进行比较而不点击任何按钮。

5 个答案:

答案 0 :(得分:2)

使用文字观察器,如下所示。

// replace R.id.editText1 with your edittext id
    final EditText myEditText = (EditText) findViewById(R.id.editText1);

    final int maxTextLength = 8;//length after that you want to compare string
    InputFilter[] filterArray = new InputFilter[1];
    filterArray[0] = new InputFilter.LengthFilter(maxTextLength);
    myEditText.setFilters(filterArray);

    myEditText.addTextChangedListener(new TextWatcher(){


   @Override
   public void afterTextChanged(Editable arg0) {
    }

   @Override
   public void beforeTextChanged(CharSequence s, int start, int count, int after) {

   }

   @Override
   public void onTextChanged(CharSequence txtWatcherStr, int start, int before, int count){
       if(count==maxTextLength ){
         if(myEditText .getText().toString().equals("Some String")){
             // do something  
        }
    }
 }
});

答案 1 :(得分:1)

您可以收听TextChange

editText.addTextChangedListener(new TextWatcher() {
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        //do stuff
    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        //do stuff
    }

    @Override
    public void afterTextChanged(Editable s) {
        //do stuff
    }
});

或者听取特定的按键:

editText.setOnKeyListener(new View.OnKeyListener() {
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        //do stuff
        return false;
    }
});

答案 2 :(得分:1)

您可能希望使用EditText的addTextChangedListener()方法并使用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) {}

答案 3 :(得分:0)

您可以将addTextChangeListener事件用于编辑文本。您可以对文本更改执行所需的操作

editText.addTextChangedListener(new TextWatcher()
        {

            @Override
            public void afterTextChanged(Editable s) 
            {

            }

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) 
            {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count)
            {

            }

        });

答案 4 :(得分:0)

查看此代码段

Field1.addTextChangedListener(new TextWatcher() {

   public void afterTextChanged(Editable s) {}

   public void beforeTextChanged(CharSequence s, int start,
     int count, int after) {
   }

   public void onTextChanged(CharSequence s, int start,
     int before, int count) {
      ...
   }
  });