2011-09-12 124 views

回答

42

你需要一個 TextWatcher

看到它在這裏的行動:

EditText text = (EditText) findViewById(R.id.YOUR_ID); 
text.addTextChangedListener(textWatcher); 


private TextWatcher textWatcher = 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

實現一個TextWatcher。它提供了三種方法,beforeTextChanged,onTextChangedafterTextChanged。最後的方法不應該被調用,直到有些東西改變了,所以這是一件好事情使用它。

8

如果你改變主意聽按鍵就可以使用OnKeyListener

EditText et = (EditText) findViewById(R.id.search_box); 

    et.setOnKeyListener(new View.OnKeyListener() { 

     @Override 
     public boolean onKey(View v, int keyCode, KeyEvent event) { 
      //key listening stuff 
      return false; 
     } 
    }); 

但Johe的答案是你所需要的。

1

這實際上爲我工作

EditText text = (EditText) findViewById(R.id.YOUR_ID); 

text.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(your_string.equals(String.valueOf(s))) { 
      //do something 
     }else{ 
      //do something 
     } 
    } 

    @Override 
    public void afterTextChanged(Editable s) { 

    } 
});