2012-03-17 18 views
15

Hay bastantes publicaciones tocando este tema. Pensé que debería hacer esta simple pregunta con la esperanza de aclarar esto.¿Cómo puede un botón obtener el foco?

No puedo lograr establecer el foco en un botón. Sé que probablemente me pierdo algo fundamental. Este es el diagrama simple:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Button" 
    android:focusable="true" /> 

</LinearLayout> 

El siguiente es el código simple en onCreate():

 Button button = (Button)findViewById(R.id.button1); 
     button.setFocusable(true); 
     button.requestFocus(); 
     button.setText("Debug"); //Just to show the code here has been executed 

Simplemente no funciona (es decir, el botón no obtener el foco).

Cualquier corrección de mi error o malentendido será muy apreciada.

Respuesta

34

actualización de su código:

 Button button = (Button)findViewById(R.id.button1); 
     button.setFocusable(true); 
     button.setFocusableInTouchMode(true);///add this line 
     button.requestFocus(); 
     button.setText("Debug"); 
+1

El botón tendrá Enfoque de lo contrario también, pero que no lo veo. El foco visual está solo en [ModoToma] (http://android-developers.blogspot.de/2008/12/touch-mode.html) – zapl

+0

Gracias a todos por la rápida respuesta y aclaración. Aparentemente no entendí qué significa "enfoque" en el contexto particular. Ahora me pregunto qué utilidad tiene obtener un botón para enfocarse sin mostrarlo. – Hong

+1

Supongamos que tiene un teclado conectado a su dispositivo (como el emulador) o que tiene un dispositivo con un d-pad y pulsa enter/click dpad. Lo que sea que tenga el foco se llama ahora. Si solo usas tu aplicación con los dedos, generalmente puedes ignorar el enfoque. – zapl

Cuestiones relacionadas