2010-06-18 7 views
3

J'essaie d'apprendre à construire des applications pour Android.Nouveau sur Android: changer dynamiquement de vues

La première application simple, qui deviendra un composant d'une application plus grande que j'espère construire, est d'avoir un bouton sur l'écran où, lorsqu'il est tapé, il ajoute quelque chose de nouveau à la vue.

Par exemple:

Imaginez une mise en page qui a seulement un bouton:

[Create!] 

Lorsque ce bouton est enfoncé, la vue obtient une nouvelle ligne ajoutée à elle:

[Create!] 
A Something! 

Lors des appuis suivants, plus de lignes sont ajoutées

[Create!] 
A Something! 
A Something! 

Et ainsi de suite.

J'ai fait un LinearLayout et placé le bouton dedans, et y ai attaché un écouteur de clic. Tout ça fonctionne très bien. Qu'est-ce que je ne peux pas comprendre est de savoir comment gérer LinearLayout dans la fonction onClick avec laquelle je vais ajouterView() le nouveau TextView qui dit "A Something!"

Suis-je sur la bonne voie? Quelle est la chose de base qui me manque? Merci!

Répondre

1

Je pense que vous vous approchez de la mauvaise façon. Vous devriez regarder dans ListView et SimpleArrayAdapter. Cela mettra les éléments dans un format de liste que les utilisateurs seront plus familiers avec. Google a quelques bons exemples qui utilisent ceci (comme leur exemple Notepad). Surtout si vous êtes nouveau sur Android, vous devriez regarder leurs démos pour vous familiariser avec les bases. vous pouvez les trouver here

+0

Merci, je vais le faire. J'ai joué avec ListView, et je l'ai eu à afficher avec des données statiques ... juste un tableau codé en dur. Je vais jouer avec les exemples pour voir comment je peux le faire dynamiquement. Merci! –

0

Ceci provient de la mémoire, donc il se peut que ce ne soit pas exactement exact.

Dans votre mise en forme, vous devez attribuer un ID au LinearLayout.

< LinearLayout
xmlns: android = "http://schemas.android.com/apk/res/android"
android: id = "@ + id/namehere"
... >

Puis dans votre code que vous allez utiliser findViewById pour obtenir une référence.

LinearLayout ll = (LinearLayout) findViewById (R.id.nomici);

ll.addView (...);

+0

Vous avez raison en ce que vous pouvez obtenir les choses par ID, mais LinearLayout donne une erreur quand j'essaye de lui donner un identifiant. C'était ma première approche. –

+0

Désolé, je pensais à FrameLayout. Voir http://www.kellbot.com/2009/06/android-hello-circle/ pour un exemple. – Slapout

Questions connexes