bill Posté(e) 28 septembre 2009 Share Posté(e) 28 septembre 2009 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, Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
arnouf Posté(e) 28 septembre 2009 Share Posté(e) 28 septembre 2009 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. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
bill Posté(e) 28 septembre 2009 Auteur Share Posté(e) 28 septembre 2009 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 ! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 28 septembre 2009 Share Posté(e) 28 septembre 2009 HS: Tiens, la balise code ne passerait-elle pas sous UFO? /HS Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
bill Posté(e) 29 septembre 2009 Auteur Share Posté(e) 29 septembre 2009 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 ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
bill Posté(e) 29 septembre 2009 Auteur Share Posté(e) 29 septembre 2009 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! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Max_well Posté(e) 2 octobre 2009 Share Posté(e) 2 octobre 2009 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.) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
bill Posté(e) 4 octobre 2009 Auteur Share Posté(e) 4 octobre 2009 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 ! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.