Establecer siguiente EditText enfocado y editable en KEY_DOWN

Tengo un diseño con dos editexts. Necesito fijar el segundo enfocado y editable cuando la llave del enter es golpeada en el primer. Tengo código para configurar el enfoque pero no puedo empezar a escribir cuando el segundo recibe el foco.

PS También necesito edittext para ser exactamente una línea de altura sin posibilidad de hacer filas adicionales. Funciona también. Pss android 2.3

Código XML:

<EditText android:id="@+id/email" style="@style/profileLoginInput" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/email" android:ems="10" android:lines="1" android:maxLines="1" android:ellipsize="end"> <requestFocus /> </EditText> <EditText android:id="@+id/password" style="@style/profileLoginInput" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:ems="10" android:inputType="textPassword" android:hint="@string/password"> 

Código Java:

 ((EditText) findViewById(R.id.email)).setOnKeyListener(new OnKeyListener(){ @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN) { switch (keyCode) { case KeyEvent.KEYCODE_DPAD_CENTER: case KeyEvent.KEYCODE_ENTER: ((EditText) findViewById(R.id.password)).requestFocus(); return true; default: break; } } return false; } }); 

Estás pensando demasiado en esto. Puede especificar el orden de las entradas EditText a la derecha en el XML sin hacer nada en Java.

Utilice el android:nextFocusDown para especificar qué campo desea obtener el foco cuando el usuario pulsa la tecla Intro.

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

Trabajó para mi

Android: nextFocusDown Funcionó bien para mí Pero eliminado el siguiente Método sólo entonces su trabajo:

 editText1.setOnEditorActionListener(new EditText.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_DONE || actionId == EditorInfo.IME_ACTION_NEXT) { editText2.requestFocus(); return false; } return false; } }); 

Parece ser escuchado al ejecutar este código en el emulador. Sin embargo, funciona en teléfonos

Además de añadir el + delante de id:

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

También tuve que añadir:

 android:imeOptions="actionNext" 
  • Quitar diseño de programación
  • Elemento RecyclerView que no muestra ondulaciones / retroalimentación táctil cuando el elemento tiene una casilla de verificación
  • Android Color Drawable Recurso
  • Android - Eliminar CacheColorHint para ListView
  • Problemas de procesamiento Excepción generada durante la representación: No se pudo encontrar el recurso de diseño
  • Cómo configurar el control focusable de Android ActionBar mediante programación
  • Cómo alinear el centro de un mapa de bits dentro de un lienzo en Android?
  • Diferencia entre android: width y android: layout_width
  • Problemas de renderización de Android GIF
  • ¿Cómo puedo alinear una imagen dentro de un ImageView a la parte inferior del ImageView?
  • ¿Es posible cambiar la dirección de RatingBar?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.