Jump to content
Morok

[Problème] Creer des view dynamiquement dans le code Java

Recommended Posts

Bonjour à tous, J'espère être dans la bonne section du forum pour poser ma question.

Je commence à développer sur Android et j' ai toujours réussi a me débloquer seul mais là je bloque et je fait appèle à vous.

Donc je voudrais créer des view depuis mon code Java pour les ajouter ensuite sur la page XML. Je veux créer des EditText pour afficher les objets de ma base de donné ( donc afficher 3 EditText si j'ai 3 enregistrements, 5 EditText pour 5 enregistrements ...) pour cela je veux les créer depuis le code Java.

Je ne vois pas trop comment m' y prendre, pourriez-vous me donner un exemple.

Merci d' avance.

Share this post


Link to post
Share on other sites

Je me permet de faire un up de mon post.

J' ai trouvé cette syntaxe qui permet d' ajouter des View a un layout, cependant je n' arrive pas a modifier les paramètres de l' objet ( Width Height ...). De plus l' objet ne s' affiche pas.

TableLayout monly = (TableLayout) findViewById(R.id.lyTableau);

Button monBouton;

monly.addView(monBouton);

Pourriez-vous m' expliquer comment procéder ?

Merci d' avance

Share this post


Link to post
Share on other sites

Hello,

Deja un des problemes, c'est que tu ne crées pas vraiment un objet bouton là ( tu ne viendrais pas du C/C++, par hasard ? Je faisais ca tout le temps au départ ).

Donc il faut que tu fasses :

Button monButton = new Button( MonActivity );

monButton.setWidth( ... );

monButton.setHeight( ... );

monly.addView(MonButton);

Voila,

je le fais moi, et ca marche !

Emmanuel / Alocaly

Share this post


Link to post
Share on other sites

Merci pour la réponse, en effet je suis habitué a coder en C/C++ et j'ai du mal avec la logique Android.

Pour la hauteur et la largeur je voulais utliser Fill_parent et wrap_content, mais la méthode setHeight nécessite une valeur en pixels. Je crois que la méthode setLayoutParams me permettrait de les utiliser mais je n' ai pas réussi a comprendre comment elle fonctionne.

Share this post


Link to post
Share on other sites

Dans nos cas non :

Il s'agit de rajouter des boutons dans une table, donc faire un tableau N x M de boutons.

Pas avoir une liste de boutons.

...

A moins que tu ne penses, dans l'adapter pouvoir mettre un nombre variable de boutons ? Mais ca revient à ce qu'on fait là...

Dans tous les cas, personnellement, je trouve ca beaucoup plus simple qu'une listView, le tablelayout + les boutons ajoutés à la volée.

Le gros soucis, en fait, c'est d'avoir une partie de son interface dans les Xml, et l'autre dans le code java.

Emmanuel / Alocaly

Share this post


Link to post
Share on other sites

tu peux toujours utiliser LayoutInflater.inflate() pour récupérer une vue depuis du xml

et l'ajouter dynamiquement à la vue de l'Activity

Share this post


Link to post
Share on other sites

Salut, pour pas recréer un topic supplémentaire, je viens voir si quelqu'un aurait une réponse à un problème similaire avant de créer un sujet :

Je cherche à créer moi aussi des vues de manière dynamique donc de ce côté la pas vraiment de problème, j'arrive a créer une vue... Le problème vient quand j'en veux plusieurs.

J'explique. J'ai une activity "vierge" dans laquelle je cherche à charger des données, un peu à la manière de Morok.

Je crée donc une view de type ScrollView (on l'appellera a)

Dans celle-ci j'ai besoin d'ajouter plusieurs Textview (on les appellera b)

Je crée donc mon textview et lui met un texte

Ensuite je fais un a.addView(b).

puis setContentView(a);

Et la, rien ne s'affiche, j'ai juste un écran noir vierge dans mon appli

Donc j'imagine que je rate une étape, quelqu'un a déja fait ça?

Share this post


Link to post
Share on other sites

La scrollview ne peut contenir qu'un noeud. Il faut que tu lui fournisses un layout dans lequel tu placeras tes autres views.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.






×
×
  • Create New...