Mover a otro EditText cuando se hace clic en Soft Keyboard Next en Android

Cuando presiono ‘Siguiente’, el foco en el texto de edición del usuario debe moverse a la contraseña. Luego, desde Password, debe moverse hacia la derecha, y así sucesivamente. ¿Me pueden ayudar a cómo codificarlo?

enter image description here

          

Manejo del enfoque

El movimiento de enfoque se basa en un algoritmo que encuentra el vecino más cercano en una dirección determinada. En casos raros, el algoritmo predeterminado puede no coincidir con el comportamiento previsto del desarrollador.

Cambie el comportamiento predeterminado de la navegación direccional utilizando los siguientes atributos XML:

 android:nextFocusDown="@+id/.." android:nextFocusLeft="@+id/.." android:nextFocusRight="@+id/.." android:nextFocusUp="@+id/.." 

Además de la navegación direccional, puede usar la navegación con tabs. Para esto necesitas usar

 android:nextFocusForward="@+id/.." 

Para obtener una vista particular para enfocar, llame

 view.requestFocus() 

Para escuchar ciertos eventos de enfoque cambiantes, use View.OnFocusChangeListener


Botón del teclado

Puede usar android:imeOptions para manejar ese botón adicional en su teclado.

Las características adicionales que puede habilitar en un IME asociado con un editor para mejorar la integración con su aplicación. Las constantes aquí corresponden a las definidas por imeOptions.

Las constantes de imeOptions incluyen una variedad de acciones y banderas, consulte el enlace anterior para conocer sus valores.

Ejemplo de valor

Acción siguiente :

la tecla de acción realiza una “próxima” operación, llevando al usuario al siguiente campo que aceptará el texto.

ActionDone :

la tecla de acción realiza una operación “finalizada”, lo que significa que no hay nada más que ingresar y el IME se cerrará.

Ejemplo de código:

       

Si desea escuchar eventos de imeoptions, use un TextView.OnEditorActionListener .

 editText.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_SEARCH) { performSearch(); return true; } return false; } }); 

 android:inputType="text" 

debe traer el mismo efecto. Después de marcar a continuación, enfoca el siguiente elemento.

 android:nextFocusDown="@+id/.." 

use esto además si no quiere que la próxima vista obtenga el foco

agrega tu editText

 android:imeOptions="actionNext" android:singleLine="true" 

agregar propiedad a la actividad en manifiesto

  android:windowSoftInputMode="adjustResize|stateHidden" 

en el archivo de diseño ScrollView configurado como diseño raíz o principal todos ui

       

si no quieres cada vez que se agrega, crea estilo: agrega estilo en values ​​/ style.xml

Estilo por Defecto:

   

Use la siguiente línea

 android:nextFocusDown="@+id/parentedit" 

parentedit es la ID del próximo EditText que se enfocará.

La línea anterior también necesitará la siguiente línea.

 android:inputType="text" 

o

 android:inputType="number" 

Gracias por la sugerencia @Alexei Khlebnikov.

 android:inputType="textNoSuggestions" android:imeOptions="actionNext" android:singleLine="true" android:nextFocusForward="@+id/.." 

Agregar campo adicional

android: inputType = “textNoSuggestions”

trabajado en mi caso!

En su controlador onEditorAction, tenga en cuenta que debe devolver un booleano que indique si está manejando la acción (verdadero) o si aplicó alguna lógica y quiere el comportamiento normal (falso), como en el siguiente ejemplo:

 EditText te = ... te.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event){ if (actionId == EditorInfo.IME_ACTION_NEXT) { // Some logic here. return true; // Focus will do whatever you put in the logic. } return false; // Focus will change according to the actionId } }); 

Encontré esto cuando volví verdadero después de realizar mi lógica ya que el foco no se movía.

  

Estas tres líneas hacen la magia

  android:maxLines="1" android:imeOptions="actionNext" android:singleLine="true" 

solo use el siguiente código, funcionará bien y usar inputType para cada texto de edición y el siguiente botón aparecerá en el teclado.

 android:inputType="text" or android:inputType="number" etc 
                

Si desea utilizar un EditText multilínea con imeOptions , intente:

 android:inputType="textImeMultiLine" 
 Inside Edittext just arrange like this  

Agregue inputType a edittext y al ingresar irá al siguiente edittext

 android:inputType="text" android:inputType="textEmailAddress" android:inputType="textPassword" 

y muchos más.

inputType = textMultiLine no va al siguiente edittext al entrar