Как сохранить фокус на текущем EditText? - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть 3 EditText (editText1, editText2 и editText3) в моем фрагменте.Когда я нажимаю «Далее» на моей программной клавиатуре, фокус в настоящее время переходит к следующему тексту редактирования.Я также проверяю, является ли содержимое этих правок (например, действительное электронное письмо и т. Д.) Действительным.Предположим, что checkEditText_ () работает правильно.

Для editText1 я решил, что вроде:

editText1.setOnKeyListener(new View.OnKeyListener() {
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
                (keyCode == KeyEvent.KEYCODE_NAVIGATE_NEXT)) {
            if (!checkEditText1()) { // editText1 content fail
                editText1.clearFocus();
                editText1.requestFocus();
                edi tText1.selectAll();
            } else if (!checkEditText2()) { // editText2 content fail
                editText1.clearFocus();
                editText2.requestFocus();
            } else if (!checkEditText3()){ // editText3 content fail
                editText1.clearFocus();
                editText3.requestFocus();
            }
            return true;
        }
        return false;
    }
});

Для editText1, когда его собственный контент не завершен, он должен оставаться и сохранять фокусна себя.В противном случае он должен сосредоточиться на двух других оставшихся editText, чтобы подтолкнуть пользователя к исправлению ошибки там.

Но когда checkEditText1 () завершается неудачей, он не фокусируется, как в первом предложении if ...

Как мне правильно остаться в текущем EditText?

1 Ответ

0 голосов
/ 04 декабря 2018

Используйте это:

     android:imeOptions="actionDone"

Нет необходимости прослушивать любые keyEvent.

...