¿Cómo establecer el foco en un widget de botón mediante programación?

81

¿Es posible establecer un foco en un widget de botón que se encuentra en algún lugar de mi diseño? onCreatede la actividad mi control / enfoque debería estar en ese botón programáticamente.

Vinayak Bevinakatti
fuente

Respuestas:

190

Sí, es posible.

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

o en XML

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

Nota importante: el widget de botón debe ser focusable y focusableInTouchMode . La mayoría de los widgets lo son, focusablepero no focusableInTouchModede forma predeterminada. Así que asegúrese de configurarlo en código

myBtn.setFocusableInTouchMode(true);

o en XML

android:focusableInTouchMode="true"
Pentium10
fuente
Lo intento en el método onCreate pero no funciona. Estoy creando botones dinámicamente y agregando los botones en LinearLayout. ¿Por favor, puede alguien ayudarme?
Manoj Kumar
6
no funcionó para mí. Tengo un EditView en mi página que siempre se enfoca.
Bobs
4

Prueba esto:

btn.requestFocusFromTouch();
Zan
fuente