Как слушать EditText? - PullRequest
       1

Как слушать EditText?

5 голосов
/ 16 февраля 2012

У меня есть EditText. Я хочу сделать что-нибудь, когда пользователь нажимает клавишу Enter при изменении EditText. Как я могу это сделать?

Самый простой способ:

final EditText edittext = (EditText) findViewById(R.id.edittext);
edittext.setOnKeyListener(new OnKeyListener() {
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        // If the event is a key-down event on the "enter" button
        if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
            (keyCode == KeyEvent.KEYCODE_ENTER)) {
          // Perform action on key press
          Toast.makeText(HelloFormStuff.this, edittext.getText(), Toast.LENGTH_SHORT).show();
          return true;
        }
        return false;
    }
});

Ответы [ 5 ]

6 голосов
/ 16 февраля 2012

образец кода для просмотра текста

your_edittext.addTextChangedListener(new InputValidator());

    private class InputValidator implements 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) {

        }    
    }    
}
4 голосов
/ 16 февраля 2012

Сначала создайте OnEditorActionListener (например, как частную переменную экземпляра):

private TextView.OnEditorActionListener mEnterListener =
    new TextView.OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if (actionId == EditorInfo.IME_NULL && event.getAction() == KeyEvent.ACTION_DOWN) { 
                /* If the action is a key-up event on the return key, do something */
            }
        return true;
    });

Затем установите слушателя (т. Е. В вашем onCreate методе):

EditText mEditText = (EditText) findViewById(...);
mEditText.setOnEditorActionListener(mEnterListener);
1 голос
/ 12 января 2017

Другая альтернатива:

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

       }
      });
0 голосов
/ 16 февраля 2012

Для этого вам нужно использовать TextWatcher.Вот пример работы с TextWatcher и Android textwatcher API.

0 голосов
/ 16 февраля 2012
your_edittext.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        //do something
    }

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