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?
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
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