У меня есть подкласс 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()
.
Спасибо