2011-05-15 821 views
33

Mi diseño tiene 4 vistas de texto de edición y una vista de botón de envío. Necesito tener el botón "Siguiente" para los primeros 3 EditText y un botón "Hecho" para el cuarto campo EditText en lugar de la tecla "Nueva línea" del teclado virtual.Botón de acción de teclado suave de Android

¿Cómo se puede hacer esto?

+0

¿Son multilíneas? y cuál era la versión de Android que estabas usando? solo preguntando ... –

Respuesta

65

En su diseño, simplemente establezca los atributos XML android:imeOptions="actionNext" para sus primeros tres cuadros de texto y android:imeOptions="actionDone" para el último.

Ver: android:imeOptions documentation

Además, hay un pequeño ejemplo XML en el training docs.

+4

Hola Martin, android: imeOptions = "actionNext" funciona bien para EditText con android: inputType = "text", pero para EditText con android: inputType = "textMultiLine" no. –

+0

@Venkat, podría intentar 'flagNavigateNext' en su lugar:" ... permite que el IME sea multilínea (con una tecla Intro) y también proporciona navegación hacia adelante ... "(ver el primer enlace arriba). –

+0

Hola Martin, estoy obteniendo "Error: tipos de cadena no permitidos" usando android: imeOptions = "flagNavigateNext" para EditText –

1

creo que lo que estás buscando es algo como esto:

EditText nextText = new EditText(this) 
{ 
    @Override 
    public InputConnection onCreateInputConnection(final EditorInfo outAttrs) 
    { 
     outAttrs.imeOptions |= EditorInfo.IME_ACTION_NEXT; 
     return (super.onCreateInputConnection(outAttrs)); 
    } 
}; 

EditText doneText = new EditText(this) 
{ 
    @Override 
    public InputConnection onCreateInputConnection(final EditorInfo outAttrs) 
    { 
     outAttrs.imeOptions |= EditorInfo.IME_ACTION_DONE; 
     return (super.onCreateInputConnection(outAttrs)); 
    } 
}; 

En primer lugar, uno llevará al usuario al siguiente campo en la disposición que acepte texto. El segundo cerrará el IME (el teclado suave).

5

para navegar por el enfoque al siguiente campo de edición añadir

android:imeOptions="flagNavigateNext"

y para despedir la tecla programable con DONE haga clic en añadir

android:imeOptions="actionDone"

en su diseño :)

2

Añadir android:singleLine="true" en su botón xml

Cuestiones relacionadas