EditText в ListView дает следующий фокус после нажатия клавиши ввода - PullRequest
0 голосов
/ 13 ноября 2011

У меня есть подкласс ListView, который отображает строки, каждая из которых содержит EditText и TextView.
Когда я касаюсь EditText, он набирает фокус (хорошо), пользователь вводит необходимую информацию и набирает KEYCODE_ENTER, чтобы запустить метод onEditorAction() из OnEditorActionListener interface. На этом методе я отклоняю клавиатуру с этим

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(et.getWindowToken(), 0);

Все остальные EditText обновляются в соответствии с изменением ввода. (пока все хорошо).

НО
После всего этого оранжевый фокус передается до следующего фокуса (следующий ряд).
Я хотел бы удалить это поведение в этом случае, но все же хочу, чтобы у пользователя была возможность перемещаться от одного к другому, используя клавиши вверх и вниз.

Итак, мой вопрос:
Как и где я могу убрать фокус EditText, который находится в ряду ListView?

Note that:
Я попытался использовать aView.clearFocus(); в onEditorAction() на EditText, который фокусируется на следующем. (не работает)
Я пытался использовать thatListView.clearFocus();, но, как и ожидалось, это не сработало.

и, если нет простого способа, я планирую проходить ряд за строкой, а ребенок за ребенком делать v.clearFocus().

Спасибо

1 Ответ

1 голос
/ 13 ноября 2011

В вашем onEditorAction() верните true, чтобы сообщить, что вы выполнили действие.

...