studio programacion móviles lose libro edittext desarrollo curso aplicaciones java android android-edittext viewflipper

java - programacion - El valor en edittext no se muestra hasta que obtiene el foco. Androide



manual de programacion android pdf (2)

Al no haber visto tu código completo, estoy sugiriendo algo, pero ¿has probado textView.invalidate () (si llamas desde el hilo de la GUI) o textView.postInvalidate () (si llamas desde otro hilo)?

Estoy construyendo una aplicación que obtiene su diseño basado en datos externos. El diseño se divide en diferentes bloques según los indatos. Estos bloques se muestran con la ayuda de un viewflipper. En cada bloque hay, por el momento, una o más "textview" y "edittext". En la primera página de la aleta, todos los datos se muestran como deberían en las textviews y edittexts. Pero en las otras páginas de viewflipper, el valor en los edittexts no se muestra hasta que el texto de edición se enfoca. No tengo ni idea de porqué. Entonces para ser claro. Los valores para todos los edittexts están realmente allí, pero no se muestran hasta que edittext se enfoque. El problema es el mismo en todos los dispositivos en los que he ejecutado la aplicación (emulador, HTC Desire, HTC Wildfire). ¿Alguien sabe cómo arreglar este problema?

Aquí está la clase que genera el diseño:

public class ModuleLayout extends LinearLayout { public ModuleLayout(Context context, ArrayList<BaseModuleItem> itemList) { super(context); TableLayout tempTable = new TableLayout(context); for (int i = 0; i < itemList.size(); i++) { TableRow tempRow = new TableRow(context); TextView tempTextView = new TextView(context); tempTextView.setText(itemList.get(i).getName()); EditText tempEditText = new EditText(context); tempEditText.setText(itemList.get(i).getItemValue()); tempRow.addView(tempTextView); tempRow.addView(tempEditText); tempTable.addView(tempRow); } tempTable.setColumnStretchable(1, true); this.addView(tempTable); } }

Aquí hay una imagen del problema en acción.

La imagen de la izquierda muestra todos sus valores bien. La imagen de la derecha está en la segunda posición en viewflipper y no muestra los valores en los edittexts, con la excepción de los primeros que tienen focus. También debo mencionar que después de que un texto de edición ha obtenido foco, continúa mostrando el valor incluso si arrojo otras vistas en el visualizador y luego hacia atrás.


Ese diseño de cómo aparece aquí no está en el hilo de la interfaz de usuario, lo que significa que no importa lo que cambie, no verá nada hasta que se actualice el hilo de la interfaz de usuario (también conocido como el hilo principal). La interfaz de usuario / hilo principal es lo que ejecutan todas tus actividades, por lo que es fácil pensar que las cosas se actualizan automáticamente (ya que la mayoría del trabajo previo que has realizado también está en algún lugar dentro de la actividad, supongo). El evento onFocusChanged (haciendo clic en el texto de edición) actualizará el hilo de la interfaz de usuario llamando a invalidate () en sí mismo. Puede obligarlo a actualizar llamando a EditText.invalidate () si lo necesita, pero generalmente es mejor actualizarlo naturalmente después de la creación. Sin ver el resto de tu código, esto es lo mejor que puedo hacer por ti, espero que esto ayude :)