imeOptions “actionNext” programáticamente: ¿cómo saltar al siguiente campo?


92

En el diseño XML es posible especificar android:imeOptions="actionNext"qué Nextbotón agrega en el teclado virtual y al hacer clic en él, el foco salta al siguiente campo.

¿Cómo hacer esto programáticamente, por ejemplo, basado en algún foco de activación de evento para ir al siguiente campo?

Respuestas:


192

Puede utilizar las constantes de la clase EditorInfo para las opciones de IME. me gusta,

editText.setImeOptions(EditorInfo.IME_ACTION_NEXT);

sí, de lo contrario, inserta una nueva línea y salta a eso =)
Ilker Baltaci

2
¿Cómo responde esto a la pregunta del OP? Esto no salta automáticamente al siguiente campo.
hitmaneidos

27

Busque el siguiente campo enfocable y luego invoque requestFocus().

TextView nextField = (TextView)currentField.focusSearch(View.FOCUS_RIGHT);
nextField.requestFocus();

2
Esta no es una respuesta verdadera en referencia al título de esta pregunta, pero técnicamente es una respuesta válida. La respuesta a continuación es más apropiada.
Sean Glover

4
@SeanGlover nunca debes usar palabras como las siguientes porque la posición de las respuestas sigue cambiando.
Nike15

20

Solo sugerencia, si está utilizando

     EditTextSample.setImeOptions(EditorInfo.IME_ACTION_DONE); 

no funciona, asegúrese de que su EditText esté usando una sola línea.

P.ej:

       editTextSample.setSingleLine();

1
Gracias. Esta debería ser la respuesta aceptada. Simplemente llame a setSingleLine () ANTES de setImeOptions.
Herman

8

Siempre es necesario agregar teclas adicionales además de las teclas predeterminadas disponibles en el QWERTYteclado virtual .

Usando XML

<EditText android:text="@+id/EditText01" 
android:id="@+id/EditText01"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:imeOptions="actionDone"/>

By Programmatic Way

Una EditorInfoes la clase más útil cuando tienes que lidiar con cualquier tipo de entrada de usuario en tu aplicación de Android.

IME_ACTION_DONE: Esta acción realiza una operación "realizada" sin que se ingrese nada y el IME se cerrará.

 EditTextSample.setImeOptions(EditorInfo.IME_ACTION_DONE);

Para obtener más información, puede visitar http://developer.android.com/reference/android/view/inputmethod/EditorInfo.html


1

El colgante de kotlin

editText.imeOptions = EditorInfo.IME_ACTION_DONE

0
editText.setLines(1);
editText.setSingleLine(true);
editText.setImeOptions(EditorInfo.IME_ACTION_GO);

Resuelvo el problema, asegúrate de usar una sola línea y voy a editar el texto siguiente al hacer clic en ingresar


0

En mi caso, establezca un imeOptions para solucionar el problema.

edtAnswer.maxLines = 1
edtAnswer.inputType = InputType.TYPE_CLASS_TEXT
edtAnswer.imeOptions = EditorInfo.IME_ACTION_NEXT

0

Puedes hacer esto por

edittext.imeOptions = EditorInfo.IME_ACTION_DONE //for done button

o

edittext.imeOptions = EditorInfo.IME_ACTION_NEXT //for next button

Pero ... debe comprender que si está utilizando filtros para editar texto, debe configurar

edittext.setSingleLine()
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.