Как программно установить фокус на виджет кнопки?


81

Можно ли установить фокус на виджет кнопки, который находится где-то внизу в моем макете? onCreateдеятельности, мой контроль / фокус должен быть программно на этой кнопке.

Ответы:


190

Да, это возможно.

Button myBtn = (Button)findViewById(R.id.myButtonId);
myBtn.requestFocus();

или в XML

<Button ...><requestFocus /></Button>

Важное примечание: виджет кнопки должен быть focusable и focusableInTouchMode . Большинство виджетов есть, focusableно не focusableInTouchModeпо умолчанию. Поэтому обязательно установите его в коде

myBtn.setFocusableInTouchMode(true);

или в XML

android:focusableInTouchMode="true"

Я пробую использовать метод onCreate, но он не работает. Я создаю кнопки динамически и добавляю кнопки в LinearLayout. Кто-нибудь может мне помочь?
Манодж Кумар

6
у меня это не сработало. На моей странице есть EditView, который всегда получает фокус.
Bobs

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.