#android #focus #edit
#Android #фокус #Редактировать
Вопрос:
У меня есть ViewFlipper
с несколькими LinearLayout
с EditText
; после нажатия кнопки выполняется некоторая проверка, и если это не удастся, мне нужно установить фокус на редактирование, которое необходимо изменить. vf
является ViewFlipper
; et123
является EditText
. При обнаружении ошибки выполняется следующее:
vf.setDisplayedChild(5);
findViewById(R.id.et123).requestFocus();
Забавно то, что при первом нажатии кнопки фокус переходит на другой элемент в правильном макете. Если я нажму кнопку еще раз, фокус переместится на et123
.
Есть идеи о том, почему это происходит или как это исправить?
Спасибо
Ответ №1:
Возможно, вам потребуется вызвать
findViewById(R.id.et123).setFocusableInTouchMode(true);
Перед вызовом requestFocus()
, чтобы включить получение фокуса.
Комментарии:
1. У меня все работает, спасибо. Но я все еще не понимаю, почему я должен использовать его при навигации по приложению через D-Pad, это не TouchMode.