2010-11-13 7 views
0

J'essaie de faire une application Android (je suis nouveau dans le monde de la programmation Android), et j'ai des problèmes pour créer l'interface graphique.Question sur la création de GUIS "dynamiquement" sur Android

Le fait est que j'obtiens des informations de certaines données qui sont divisées en jours ... Le problème est que je ne sais pas, jusqu'à ce que je récupère les informations, combien de jours l'interface graphique doit afficher.

http://img574.imageshack.us/img574/3787/mainscreen.jpg

La partie gris sera un TextView, et, également, la partie noire sera une autre TextView avec plusieurs lignes.

Donc, le point est, comment puis-je faire pour avoir plusieurs TextView sans savoir avant le nombre exact? Je suppose que je ne peux pas les déclarer dans le layout.xml

La seule solution à laquelle j'ai pensé est de créer dans la mise en page 7 paires de TextView et, quand je connais le nombre exact, il suffit d'utiliser ce que Je dois, et ne pas utiliser les autres ... (C'est une mauvaise solution)

Que suggérez-vous?

Merci pour vos réponses!

Répondre

2

Vous devez créer un ListView, qui gonfle TextView pour les éléments dont vous disposez.

Vous pouvez utiliser this example pour créer un ListView sectionné, qui ressemblera exactement à ce que vous voulez.

+0

Merci! Je lisais ceci et j'ai juste remarqué que j'utilisais une façon très inélégante (je créais tout et je cachais l'en-tête quand il le fallait (visibilité "disparue")). Mais votre solution semble beaucoup mieux, bien que plus complexe bien sûr. Je vais utiliser cette classe sur mon application (hmm, j'ai besoin d'en réécrire une partie). Cela a bien fonctionné, mais le vôtre semble mieux. Merci!! – davidcesarino

0

Je ne suis pas familier avec Android, donc d'autres personnes peuvent offrir de meilleurs conseils plus spécifiques.

Dans les environnements que je connais, le problème de l'affichage d'un nombre inconnu d'éléments est résolu en n'utilisant pas une série d'éléments d'affichage pour chaque élément de données, mais un contrôle de liste. Le composant liste affichera autant d'éléments que vous le donnez, et peut généralement être modifié pour avoir une apparence différente pour différentes données, de sorte que vous êtes flexible pour le rendre aussi joli que vous le souhaitez.

0

Eh bien, vous pouvez considérer celle-ci aussi,

  • Créer une mise en page de table en XML, lui donner un id: (. R.id ....) TableLayout table = (TableLayout) findViewById
  • Créer des affichages de texte dynamiques en utilisant: TextView day = new TextView (this); day.setText (nom du jour);
  • Maintenant, ajoutez cette vue de texte à votre disposition de table: table.addView (jour);
  • exécuter le code pour la création textView et plus de la table dans la boucle

Hope this helps ...............

Questions connexes