2010-04-30 12 views

Respuesta

140

podría utilizar el requestFocus etiqueta:

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

Me parece extraño a pesar de que la auto-centra uno de los botones, no he observado que el comportamiento en cualquiera de mis puntos de vista.

+0

Sí, ahora ha sucedido con dos de mis aplicaciones. ¿Supongo que podría solicitar Foco en un elemento que no cambia como un TextView o no estaría permitido? – stealthcopter

+3

Creo que funcionará en cualquier vista que sea enfocable. – Matthias

+1

@stealthcopter: ¿puede decirme qué versión de Android está utilizando? Estoy usando 2.1 y 2.2, pero requestFocus no funciona. – anticafe

21

Establezca :focusable y :focusableInTouchMode en true y llame al requestFocus. Lo hace el truco.

+1

finalmente se encuentra este ES el solución, gracias – unruledboy

+0

Sí, esta es la verdadera solución para solucionarlo. Gracias Anders – GkhnSr

+0

Todavía no funciona cuando hay un EditText. – m0skit0

3

@Someone alguna parte he utilizado este enfoque claro a:

editText.clearFocus(); 

y me ayuda

+0

No funciona en Android 2.3.3. –

54

@Someone En algún lugar, he intentado todo lo anterior fue en vano. La solución que encontré es de http://www.helloandroid.com/tutorials/remove-autofocus-edittext-android. Básicamente, es necesario crear un diseño invisible justo por encima del botón problemática:

<LinearLayout android:focusable="true" 
       android:focusableInTouchMode="true" 
       android:layout_width="0px" 
       android:layout_height="0px" > 
    <requestFocus /> 
</LinearLayout> 
+0

Pude concentrarme en un AlertDialog y habilitar el modo de enfoque enfocado me ayudó a hacerlo bien. Básicamente, así es cómo: alert.show(); alert.getButton (AlertDialog.BUTTON_POSITIVE) .setFocusableInTouchMode (true); alert.getButton (AlertDialog.BUTTON_NEGATIVE) .requestFocus(); –

+1

¡Gracias! Esta fue la ** única ** solución que funcionó en mi caso. Aunque lo usé ligeramente diferente; Puse el material de enfoque en un 'RelativeLayout' que contiene el' EditText'. – kaka

6

usar el siguiente código,

TableRow _tableRow =(TableRow)findViewById(R.id.tableRowMainBody); 
tableRow.requestFocus(); 

que debería funcionar.

11

Acabo de añadir esta línea de código en onCreate():

this.getWindow().setSoftInputMode(
    WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

Problema resuelto.

+0

Funciona en Android 2.3.3. –

17

Encontré que esto funcionó mejor para mí.

En AndroidManifest.xml <activity> element añadir android:windowSoftInputMode="stateHidden"

Esto siempre se esconde el teclado al entrar en la actividad.

+1

Impresionante ... Leíste mi mente ... :) :) –

Cuestiones relacionadas