2010-08-16 13 views
17

Hay un EditText y un TextView en mi actividad. Quiero centrarme en el TextView cuando comience la actividad. Utilicé el siguiente código:¿Cómo establecer el foco en un TextView cuando se inicia una actividad?

TextView myTextView = (TextView) findViewById(R.id.my_text_vew); 
    myTextView.setFocusable(true); 
    myTextView.setOnClickListener(this); 
    myTextView.requestFocus(); 

Pero el código no funciona. EditText siempre recibe el foco cuando comienza la actividad.

¿Alguien puede ayudar?

Gracias.

Respuesta

13

Esto se espera cuando inicia la actividad usando la pantalla táctil. Cuando está en "modo táctil", solo un par de vistas (EditText y ListView) pueden recibir el enfoque. Si inicia su aplicación con la rueda de desplazamiento, verá el enfoque en TextView. Lo que está viendo es el resultado correcto y esperado.

+1

Cómo hacer todo lo contrario. Por ejemplo, tengo un campo de edición numérico como primer objeto ui, y siempre recibo el foco y las ventanas emergentes del teclado. No quiero que el teclado aparezca. – Pentium10

+0

Entonces, ¿necesito configurar el TextView para que se pueda enfocar en el modo táctil? – user256239

11

Me encontré con su pregunta ahora. Tal vez después de 2 años hayas encontrado una solución. Pero lo escribo aquí para los demás que se encontrarán con esto en el futuro. Lo único que debe hacer es ir al AndroidManifest.xml, encontrar el Activity en el que desea este comportamiento y agregar este android:windowSoftInputMode="stateHidden". Por lo tanto, al inicio de su Activity no se mostrará ningún teclado, hasta que toque el objeto EditText.

8

Si alguien todavía se pregunta, puede utilizar lo siguiente en su xml diseño para hacer un enfocable TextView en el modo de contacto:

android:focusableInTouchMode="true" 
2

añadir la propiedad Vista de Texto en la disposición

android:focusable="false" 

Es un trabajo para mi.

0

Puede establecer el foco en cualquier widget o un TextView desde el xml de la actividad. Simplemente agregue requestFocus antes del final de TextView.

<AutoCompleteTextView 
     android:id="@+id/autoCompleteTextView2" 
     android:layout_width="470dp" 
     android:layout_height="wrap_content" 
     android:layout_marginStart="90dp" 
     android:layout_toEndOf="@+id/textView2" 
     android:ems="10" 
     android:textColor="#455A64" 
     android:textColorHint="#455A64" 
     android:textSize="27sp"> 

     <requestFocus /> 
    </AutoCompleteTextView> 
4

Con el fin de solicitar atención a TextView es necesario establecer focusable="true" y focusableInTouchMode="true" de la siguiente manera:

<TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Heading" 
      android:textSize="20sp" 
      android:textStyle="bold" 
      android:focusable="true" 
      android:focusableInTouchMode="true"> 
       <requestFocus /> 
    </TextView> 
2

Utilice esta:

EditText mEditText = (EditText) findViewById(R.id.edit_text); 
TextView myTextView = (TextView) findViewById(R.id.my_text_vew); 

mEditText.setFocusable(false); 
myTextView.setFocusable(true); 

Esta toma el foco fuera de la EditarTexto y lo pone en TextView.

Cuestiones relacionadas