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.

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"

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();
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.