Jak programowo ustawić fokus na widżecie przycisku?

81

Czy można ustawić fokus na widget przycisku, który znajduje się gdzieś w moim układzie? onCreatemojej kontroli / skupienia się powinno być programowo na tym przycisku.

Vinayak Bevinakatti
źródło

Odpowiedzi:

190

Tak, to możliwe.

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

lub w formacie XML

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

Ważna uwaga: widget przycisku musi być focusable i focusableInTouchMode . Większość widżetów jest, focusableale nie focusableInTouchModedomyślnie. Więc upewnij się, że ustawiłeś go w kodzie

myBtn.setFocusableInTouchMode(true);

lub w formacie XML

android:focusableInTouchMode="true"
Pentium10
źródło
Próbuję tego w metodzie onCreate, ale nie działa. Tworzę przyciski dynamicznie i dodaję przyciski w LinearLayout. Czy ktoś może mi pomóc?
Manoj Kumar
6
to nie działa dla mnie. Mam EditView na mojej stronie, który zawsze ma fokus.
Bobs
4

Spróbuj tego:

btn.requestFocusFromTouch();
Zan
źródło