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?

Laimoncijus
fuente

Respuestas:

192

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

editText.setImeOptions(EditorInfo.IME_ACTION_NEXT);
Firewall_Sudhan
fuente
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();
Justin
fuente
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();
ziniestro
fuente
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

IntelliJ Amiya
fuente
1

El colgante de kotlin

editText.imeOptions = EditorInfo.IME_ACTION_DONE
Kuzdu
fuente
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

Handelika
fuente
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
Asignar
fuente
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()
Kishan Solanki
fuente