Как проверить, был ли EditText изменен или нет? - PullRequest
20 голосов
/ 12 сентября 2011

Мне нужно знать, был ли EditText изменен или нет, не о том, вводил ли пользователь какой-либо текст в поле, а только то, изменилось ли String .

Ответы [ 4 ]

47 голосов
/ 12 сентября 2011

Вам нужен 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) {

  }
}
8 голосов
/ 12 сентября 2011

Если вы передумаете слушать нажатия клавиш, вы можете использовать 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;
        }
    });

Но ответ Джо - то, что тебе нужно.

2 голосов
/ 12 января 2017

Это на самом деле работает для меня

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

    }
});
2 голосов
/ 12 сентября 2011

Реализация TextWatcher .Это дает вам три метода, beforeTextChanged, onTextChanged и afterTextChanged.Последний метод не следует вызывать, пока что-то не изменится, так что это хорошая вещь для использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...