La valeur dans edittext ne s'affiche pas jusqu'à ce qu'elle se concentre. Android

Je crée une application qui obtient sa mise en page en fonction de données externes. La mise en page est divisée en différents blocs en fonction de l'indata. Ces blocs sont affichés avec l'aide d'un visionneur. Dans chaque bloc, il existe pour l'instant une ou plusieurs "textview" et "edittext". Sur la première page du flipper, toutes les données s'affichent comme il se doit dans les textviews et edittexts. Mais sur les autres pages du viewflipper, la valeur dans les edittexts ne s'affiche pas jusqu'à ce que l'edittext soit concentré. Je ne sais pas pourquoi. Donc, pour être clair. Les valeurs pour tous les edittexts sont en fait là, mais ne s'affichent pas jusqu'à ce que l'edittext se concentre. Le problème est le même sur tous les appareils sur lesquels j'étais installé (émulateur, HTC Desire, HTC Wildfire). Est-ce que quelqu'un sait comment résoudre ce problème?

Voici la classe qui génère la mise en page:

  • Rénover 2 avec seulement des données de formulaire
  • Transition élément élément partagé: l'activité en fragment imbriqué dans une autre activité
  • Comment positionner StaticLayout dans Android?
  • Empêchez le bitmap trop important pour être téléchargé dans une texture Android
  • Comment configurer réagir la bibliothèque native Android pour utiliser npm installé réagir-native?
  • Effectuer une pause d'activité qui n'est pas reprise après la méthode de recréation
  • 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); } } 

    Voici une image du problème en action. (Je n'ai pas 10 points de réputation sur stackoverflow alors il suffit de cliquer sur le lien.)

    Http://androidapp.blogg.se/images/2011/androidproblem_146464768.png

    L'image de gauche affiche toutes ses valeurs bien. La bonne image est sur la deuxième position dans le viewflipper et n'indique pas les valeurs dans les edittexts, à l'exception du premier qui a la mise au point. Je devrais également mentionner qu'après que l'edittext s'est concentré, il continue à afficher la valeur, même si je regarde sur d'autres vues dans le viewflipper, puis je retourne.

  • Listview itemclick ne fonctionne pas
  • Google Maps V2 - Fragment de classe de gonflement d'erreur
  • Quand le périphérique Android va-t-il au mode veille?
  • Comment écouter une copie dans Android
  • RTSP streaming vidéo en direct
  • R.xml.preferences ne peut pas être trouvé?
  • 2 Solutions collect form web for “La valeur dans edittext ne s'affiche pas jusqu'à ce qu'elle se concentre. Android”

    Cette mise en page de la manière dont elle apparaît ici n'est pas sur le thread de l'interface utilisateur, sinon ce que vous modifiez, vous ne verrez rien jusqu'à ce que le thread UI (également connu sous le nom de Thread principal) soit mis à jour. L'UI / thread principal est ce que toutes vos activités traversent, il est donc facile de penser que les choses ne sont que mises à jour automatiquement (puisque la plupart des travaux précédents que vous avez réalisés sont également dans l'Activité, je suppose). L'événement onFocusChanged (en cliquant sur le fichier edittext) mettra à jour le thread UI en appelant invalider () sur lui-même. Vous pouvez le forcer à mettre à jour en appelant EditText.invalidate () si vous le souhaitez, mais il est généralement préférable de le mettre à jour naturellement après la création. Sans voir le reste de votre code, c'est le meilleur que je peux faire pour vous, j'espère que cela aide 🙂

    N'ayant pas vu votre code complet, je fais un peu de suggestion, mais avez-vous essayé textView.invalidate () (si appeler à partir du thread GUI) ou textView.postInvalidate () (si appel d'un autre thread)?

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.