Editar el foco de texto en android
En mi aplicación tengo texto de edición como sigue.
EditText1 EditText2 EditText3 EditText4 EditText5 EditText6
En xml i declarado android:imeOptions="actionNext"
y también escribo
- Manejar la tecla Enter en EditText a través de diferentes dispositivos
- Cómo establecer sólo un valor numérico para edittext en android?
- Cómo implementar Multiline EditText con el botón ActionDone (sin el botón Enter)
- Las sugerencias de ortografía proporcionan valores redundantes con android.text.TextWatcher
- Mantenga un valor EditText en un ListView
editText1.setOnEditorActionListener(new EditText.OnEditorActionListener() { public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { // TODO Auto-generated method stub if (actionId == EditorInfo.IME_ACTION_DONE || actionId == EditorInfo.IME_ACTION_NEXT) { editText2.requestFocus(); return false; } return false; } });
Ahora en tablero virtual en edición de texto 1 si presiono siguiente estoy recibiendo el foco en editar texto3 en lugar de editText2 etc
¿Cómo puedo obtener el foco en EditText2 en lugar de edittext3 para mi aplicación de usuario sólo presiona "Siguiente o hecho" él nunca va para trackball.
- Cambiar el color del puntero del cursor EditText de Android mediante programación
- Prevención del enfoque automático de EditText en un AlertDialog
- Poner texto constante dentro de EditText que no debería ser editable - Android
- Dibujable a la derecha en el texto de edición sin actualizar después del error
- EditText android: sugerencia no desaparece onFocus
- EditText Alternativas en un Widget? Tiene que haber una forma
- Modificar estilos para EditText en Android
- EditarTexto contenido dentro de ExpandableListView desaparecer al hacer clic en siguiente ExpandableListView encabezado
Puede intentar agregar el atributo android:nextFocusDown
en su EditTexts
.
Acabo de probar su código con el siguiente diseño y funcionó como se esperaba. (Esperado = clic siguiente en el teclado virtual se pasó el enfoque a editText2)
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center" android:padding="15dip"> <LinearLayout android:orientation="vertical" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_gravity="center" android:paddingLeft="20dip" android:paddingRight="20dip"> <TableLayout android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="center" android:stretchColumns="*"> <TableRow> <EditText android:id="@+id/edt1" /> <EditText android:id="@+id/edt2" /> </TableRow> <TableRow> <EditText android:id="@+id/edt3" /> <EditText android:id="@+id/edt4" /> </TableRow> <TableRow> <EditText android:id="@+id/edt5" /> <EditText android:id="@+id/edt6" /> </TableRow> </TableLayout> </LinearLayout>
Aquí también está la fuente
package com.stackoverflow.test; import android.app.Activity; import android.os.Bundle; import android.view.KeyEvent; import android.view.inputmethod.EditorInfo; import android.widget.EditText; import android.widget.TextView; public class TestEditTextFocusActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); EditText editText1 = (EditText)findViewById(R.id.edt1); final EditText editText2 = (EditText)findViewById(R.id.edt2); 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; } }); }
}
ed1.setOnEditorActionListener(new EditText.OnEditorActionListener() { public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { // TODO Auto-generated method stub if (actionId == EditorInfo.IME_ACTION_DONE || actionId == EditorInfo.IME_ACTION_NEXT) { ed1.setNextFocusDownId(R.id.ed2); return false; } return false; } });
Después de escribir el código anterior de mi problema se resuelve, Gracias a todos por sus respuestas y apoyo.
- Cómo construir ffmpeg bibliotecas compartidas sin sufijo de versión
- ¿Es incluso posible modificar .apk, agregando la clase adicional a .dex y re-embalar con manifest.xml modificado?