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

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"
Pentium10
источник
Я пробую использовать метод onCreate, но он не работает. Я создаю кнопки динамически и добавляю кнопки в LinearLayout. Кто-нибудь может мне помочь?
Манодж Кумар
6
у меня это не сработало. На моей странице есть EditView, который всегда получает фокус.
Bobs
4

Попробуй это:

btn.requestFocusFromTouch();
Зан
источник