2014-03-03 22 views
1

我創建了多個EditText,之後我們得到了每個EditText的值,但是現在我想將該值與給定的字符串進行比較,而無需單擊任何按鈕。如何在不點擊按鈕的情況下執行任何功能只需在edittext中輸入值?

+1

[TextChangedListener(http://developer.android.com/reference/android/widget/TextView.html#addTextChangedListener(android.text.TextWatcher))是你正在尋找...這裏是什麼[簡單示例](http://www.mysamplecode.com/2012/06/android-edittext-text-change-listener.html) – CRUSADER

回答

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

      } 

     }); 
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; 
    } 
}); 
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) { 
     ... 
    } 
    }); 
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 
     } 
    } 
} 
}); 
相關問題