KeyCode_Enter al próximo edittext
En edittext, después de teclear 'Enter', el sistema hará una nueva línea dentro de él. Me gustaría centrarme en el próximo edittext, no hay nueva línea. Cómo codificar Mi código en xml está por debajo
<EditText android:id="@+id/txtNPCode" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="18sp" android:layout_alignLeft="@+id/lblNPCode" android:layout_below="@+id/lblNPCode" android:layout_centerHorizontal="true"/> <EditText android:id="@+id/txtCNPCode" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="18sp" android:layout_alignLeft="@+id/lblCNPCode" android:layout_below="@+id/lblCNPCode" android:layout_centerHorizontal="true"/>
También código de la llave del capitán en setOnKeyListener
- Contraseña de Android editar texto que muestra el texto
- Cómo alinear a la derecha el texto en un Android TextView o EditText?
- EditText como parte de HeaderView pierde foco en la entrada
- ¿Cómo evitar que el teclado se abra cuando se abre la actividad en android?
- Barra de herramientas de selección de texto no visible en las versiones de pre-malvavisco sin ActionBar
tCNPCode.setOnKeyListener(new OnKeyListener() { public boolean onKey(View v, int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(keyCode == 66) { Toast.makeText(S_PCode.this, "Enter Key", Toast.LENGTH_LONG).show(); //tNPCode.setFocusable(true); } return false; } });
- EditText El relleno no funciona
- Mover a otro EditText cuando se hace clic en Soft Keyboard Next en Android
- RequestFocus no funciona
- Qué atributo de tema cambia el color de texto de un mensaje de error de EditText
- ¿Cómo ocultar el teclado sólo con un toque fuera de un edittext?
- EditText - cambia el color de fondo del texto (y sólo el texto - no toda la vista)
- Mover EditText en NestedScrollView cuando aparece el teclado virtual
- ¿Cómo alinear el cursor EditText correctamente?
Tienes que usar el método requestFocus
. En su caso será algo así como:
tCNPCode.setOnKeyListener(new OnKeyListener() { public boolean onKey(View v, int keyCode, KeyEvent event) { if(keyCode == 66) { txtCNPCode.requestFocus(); } return false; } });
Usted ni siquiera tiene que usar OnKeyListener
. Simplemente añada línea android:singleLine="true"
a su EditText
. Después de esta operación EditText
comporta exactamente como usted desea. Por lo tanto, en su caso particular:
<EditText android:id="@+id/txtNPCode" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="18sp" android:layout_alignLeft="@+id/lblNPCode" android:layout_below="@+id/lblNPCode" android:layout_centerHorizontal="true" android:singleLine="true" /> <EditText android:id="@+id/txtCNPCode" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="18sp" android:layout_alignLeft="@+id/lblCNPCode" android:layout_below="@+id/lblCNPCode" android:layout_centerHorizontal="true" />
Soluciona el problema.
La mejor manera es usar una de las opciones para inputType, por ejemplo: android:inputType="textPersonName"
Esto logrará el efecto deseado. Echa un vistazo a las otras opciones también, te ahorrará algún tiempo en el futuro 🙂
No debes usar android: singleLine = "true", ya que está obsoleto. Esto es lo que las documentaciones dicen al respecto:
Este atributo está obsoleto y se sustituye por el indicador textMultiLine en el atributo inputType. Tenga cuidado cuando altere diseños existentes, ya que el valor por defecto de singeLine es falso (modo multilínea), pero si especifica cualquier valor para inputType, el valor predeterminado es el modo de una sola línea. (Si se encuentran los atributos singleLine y inputType, los flags inputType anularán el valor de singleLine.).
Considere las opciones de IME, buena descripción aquí http://androidcookbook.com/Recipe.seam;jsessionid=C824437B48F346E23FBE5828969029B4?recipeId=422 y la documentación aquí http://developer.android.com/reference/android/widget/TextView.html#attr_android : ImeOptions .
Lo único que necesita es añadir atributo android: imeOptions = "actionNext" en cada EditText. El teclado aparece con una tecla Next en donde Enter se utiliza y permite navegar hasta el siguiente EditText.
Pero el orden de "actionNext" es de arriba a abajo. Por ejemplo, si tiene un diseño horizontal:
<LinearLayout android:orientation="horizontal" > <EditText android:id="@+id/et1" android:imeOptions="actionNext" /> <EditText android:id="@+id/et2" android:imeOptions="actionNext" /> </LinearLayout>
Et2 nunca consigue el foco. Debe corregirlo en el código:
et1.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { switch (actionId) { case EditorInfo.IME_ACTION_NEXT: boolean result = false; TextView v1 = (TextView) v.focusSearch(View.FOCUS_RIGHT); if (v1 != null) result = v1.requestFocus(View.FOCUS_RIGHT); else if (!result) { v1 = (TextView) v.focusSearch(View.FOCUS_DOWN); if (v1 != null) result = v1.requestFocus(View.FOCUS_DOWN); } if (!result) v.onEditorAction(actionId); break; default: v.onEditorAction(actionId); break; } return true; } });
Enlace original: https://groups.google.com/forum/?fromgroups=#!topic/android-developers/OykOG6XtE8w
Simplemente establezca el número máximo de líneas en el cuadro EditText
en el archivo de diseño xml: android:maxLength="1"
- Cómo colapsar completamente un SearchView después de un elemento seleccionado?
- Eclipse ejecuta el modo de depuración incluso cuando hago clic en "ejecutar"