Wie kann ich den Fokus programmgesteuert auf ein Schaltflächen-Widget setzen?

81

Ist es möglich, einen Fokus auf ein Schaltflächen-Widget zu setzen, das sich irgendwo in meinem Layout befindet? onCreateBei der Aktivität sollte meine Steuerung / mein Fokus programmgesteuert auf dieser Schaltfläche liegen.

Vinayak Bevinakatti
quelle

Antworten:

190

Ja, das ist möglich.

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

oder in XML

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

Wichtiger Hinweis: Das Schaltflächen-Widget muss focusable und sein focusableInTouchMode . Die meisten Widgets sind focusablejedoch nicht focusableInTouchModestandardmäßig. Stellen Sie also sicher, dass Sie es entweder im Code festlegen

myBtn.setFocusableInTouchMode(true);

oder in XML

android:focusableInTouchMode="true"
Pentium10
quelle
Ich versuche es in der onCreate-Methode, aber es funktioniert nicht. Ich erstelle Schaltflächen dynamisch und füge die Schaltflächen in LinearLayout hinzu. Kann mir bitte jemand helfen?
Manoj Kumar
6
es hat bei mir nicht funktioniert. Ich habe eine EditView auf meiner Seite, die immer den Fokus erhält.
Bobs
4

Versuche dies:

btn.requestFocusFromTouch();
Zan
quelle