¿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.

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"

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();
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.