2010-06-22 13 views
5

estoy definiendo una edición de texto como tal ...Android EDITTEXT, en lugar de teclado, ingrese con DONE

<EditText 
android:id="@+id/user" 
android:layout_width="200px" 
android:layout_height="wrap_content" 
android:text="Username" 
android:textSize="18sp" 
android:gravity="center" 
android:layout_x="64px" 
android:layout_y="140px" 
> 

me gustaría reemplazar el botón que aparece en el teclado de forma automática "enter", con un botón hecho que simplemente cierra el teclado cuando el usuario lo golpea. He visto esto hecho en un par de aplicaciones (por ejemplo, la aplicación de Twitter Nexus One) y me gustaría implementar algo similar. ¿Alguien sabe cómo?

También es posible obtener el texto que aparece por defecto al borrado automático cuando el usuario haga clic para editar el cuadro de EditarTexto? Gracias,

Respuesta

11

Solución simple: agregue android:singleLine="true" para EditText. Esto reemplazará el enter con Next (para todos los edittexts excepto el último) y Done (para el último).

+0

que funcionó! ¡Gracias! una cosa más, ¿cómo apagaría el diccionario? – Skizit

+3

use 'android: inputType =" textNoSuggestions "' – cristis

+3

Por cierto, puede establecer una acción personalizada en lugar de la predeterminada (siguiente/hecho) con 'android: imeOptions' – cristis

2

Sobre su otra pregunta, haciendo que el texto se auto-borre, debe incluirlo en android:hint en lugar de android:text.

+0

datz una buena observación pero no la respuesta :) +1 –

3

Sólo añadir en el XML EditarTexto: android:imeOptions="actionDone"

1
android:imeOptions="actionNext" 

Sustituye el nombre de la tecla enter con "Siguiente" en el teclado virtual y haciendo clic sobre ella - el foco salta al siguiente campo

en su diseño, que haría cosas como esta

<EditText 
    ... 
    android:text="Field 1" 
    android:imeOptions="actionNext" /> 
<EditText 
    ... 
    android:text="Field 2" 
    android:imeOptions="actionNext" /> 

Y en Java

TextView field2 = (TextView) field1.focusSearch(View.FOCUS_RIGHT); 
field2.requestFocus(); 

Depende de usted decidir qué campo va a solicitar el enfoque siguiente.

2

Aquí es una respuesta actualizada:

android:maxLines="1" 

La respuesta aceptada de android:singleLine="true" ya no se utiliza.

Cuestiones relacionadas