Android: как игнорировать клавишу Enter, чтобы фокус не изменился - PullRequest
0 голосов
/ 18 октября 2011

У меня есть Activity с двумя полями EditText. Поэтому, когда я нажимаю ввод в первом, второй становится сфокусированным.

Однако я хочу иногда отключить клавишу Enter в первом тексте EditText (например, когда я думаю, что пользователь не сделал правильный ввод в первый текст EditText).

Я перезаписал onKeyDown для первого EditText, возвращающего значение true, когда ключевым событием является KEYCODE_ENTER, но это не помогает.

Что мне делать?

Ответы [ 2 ]

0 голосов
/ 24 июня 2016

Просто добавив editorActionListener:

editText1.setOnEditorActionListener(new TextView.OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if (actionId == EditorInfo.IME_ACTION_DONE || event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
                if(isValidContent(editText1.getText().toString()){
                    editText2.requestFocus();
                    return true;
                } else {
                       ....
                }
            }
            return false;
        }
    });
0 голосов
/ 18 октября 2011

Как насчет добавления OnFocusChangeListener? Когда ваш EditText теряет фокус, вы можете выполнить проверку и сделать requestFocus для «правильного» поля.

...