Aller au contenu

creation de List


bill

Recommended Posts

Bonjour,

Encore une question de débutant :/

Dans tous les exemples que j'ai trouvé, la creation de liste se fait tjrs dans le code, et non pas via un layout en xml.

y a pas moyen de definir tout ca dans un xml ? et simplement utiliser le code pour le provider ?

deja, j'ai vu qu'on pouvait definir le style d'un element de la liste dans un xml. c'est chouette.

mais si je veux des pixel de padding sur les 4 cotés de la liste, je ne vois pas comment faire.

voir, rajouter un petit label au dessus de la liste.

voila, ca doit etre simple, mais pas encore pour moi !

merci,

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Encore une question de débutant :/

Dans tous les exemples que j'ai trouvé, la creation de liste se fait tjrs dans le code, et non pas via un layout en xml.

y a pas moyen de definir tout ca dans un xml ? et simplement utiliser le code pour le provider ?

deja, j'ai vu qu'on pouvait definir le style d'un element de la liste dans un xml. c'est chouette.

mais si je veux des pixel de padding sur les 4 cotés de la liste, je ne vois pas comment faire.

voir, rajouter un petit label au dessus de la liste.

voila, ca doit etre simple, mais pas encore pour moi !

merci,

Tu crées ton propres layout qui representera ta ligne.

Tu crées une classe qui va étendre un Adapter (que tu passes normaement à ta liste par setAdapter par exemple).

tu dois implémenter la methode getView de ton adapter, qui à partir de ton layout, fera l'inflate de ce dernier et positionnera les données aux endroits de layout comme tu le définiras dans cette même méthode.

On ne peut pas tout faire en XML pour gérer les listes.

Lien vers le commentaire
Partager sur d’autres sites

oulala, je comprends bien tes 2 premieres lignes, les 2 suivantes, plus durs.

par contre, je reviens des exemples.

dans android-1.5\samples\ApiDemos\src\com\example\android\apis\view

dans List12.java, on etend une ListActivity

et ensuite, on fait un setContentView(R.layout.list_12);

avec R.layout.list_12 qui est en fait un :

    android:orientation="vertical"
   android:layout_width="fill_parent" 
   android:layout_height="fill_parent"
   android:paddingLeft="8dip"
   android:paddingRight="8dip">

       android:layout_width="fill_parent" 
       android:layout_height="0dip"
       android:layout_weight="1"
       android:stackFromBottom="true"
       android:transcriptMode="normal"/>

       android:layout_width="fill_parent"
       android:layout_height="wrap_content" />

j'etais convaincu qu'on ne pouvais avoir qu'une liste dans la vue d'un ListActivity.

en fait non.

je capte vraiment plus la difference entre ListActivity et Activity :/

dans la doc, pour ListActivty, on a ca:

An activity that displays a list of items by binding to a data source such as an array or Cursor, and exposes event handlers when the user selects an item.

ListActivity hosts a ListView object that can be bound to different data sources, typically either an array or a Cursor holding query results. Binding, screen layout, and row layout are discussed in the following sections.

Est-ce qu'un peut m'expliquer, simplement, la difference entre les 2 ?

merci beaucoup !

Lien vers le commentaire
Partager sur d’autres sites

bon, j'ai fait 2 petits tests.

a chaque fois, j'ai un layout decrit en xml avec un TextView et une ListView. Le tout dans un LinearLayout.

je fais un setContentView(R.layout.monLayout); dans le onCreate() de ma class.

Là où je capte pas, c'est que j'ai fait un :

public class MaClass extends Activity {

et ensuite, un autre test avec :

public class MaClass extends ListActivity {

et bien, les 2 fonctionnent de la même manière. j'ai bien mon TextView et ma ListView dessous. et tout marche.

La difference entre Activity et ListActivty, c'est juste le fait que dans ListActivity on a l'Adapter directement au niveau de la ListActivity ?

mais dans tous les cas, on a bien l'Adapter au niveau de la ListView. non ?

Lien vers le commentaire
Partager sur d’autres sites

en définissant une listView dans un xml. on peut facilement lui donner un Array pour les elements avec:

android:entries

j'essaye de rester un maximum dans les xml, c'est approprié pour mon appli.

Par contre, je ne trouve pas comment associer à cette ListView, le style des éléments (par exemple, changer la couleur du texte ou sa gravité)

est-ce que qqu'un peut m'aider ?

merci!

Lien vers le commentaire
Partager sur d’autres sites

Le ListActivity permet de laisser la gestion du cursor à l'activity. Tu précises juste ton adapter, et tu laisse rouler.

Tu peux préciser le look de ton activity avec ton setContentView, en précisant un xml. Dans ce xml, tu peux intégrer deux id : "android:list" (une listeView), c'est là où la ListActivity mettra tes données de la liste, et android:empty, qui sera affiché si ta liste est vide. Tu peux ensuite rajouter autant d'autres view que tu veux autour de ces deux là.

Ensuite, tu peux préciser quand tu crées ton adapter, quel layout utiliser pour afficher un ligne de la liste. Il te faut alors un Binder qui précisera quelle valeur du cursor affecter à quelle id de ton layout.

Maintenant, en te relisant, si tu n'utilises que des données statiques et non dynamique, l'interet entre ListActivity et Activity doit être mince. Par contre, le fonctionnement avec l'adapter et le binder est ce que tu cherches je pense.

(Après vérification de la doc, tu vas avoir besoin de ArrayAdapter, et éventuellement de le surcharger pour modifier getView si tu as besoin d'afficher plus qu'un simple TextView. Pas besoin de binder dans ce cas.)

Lien vers le commentaire
Partager sur d’autres sites

merci pour ta reponse.

c'est bien dans cette direction que je suis parti (arrayAdapter & Co).

Je pensais pouvoir en gérer plus en static, mais bon, pas grave.

en tout cas, merci pour ton explication des deux id. j'avais fini par comprendre le coup de android:list, mais pas du tout celui du empty !

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...