Beruflich Dokumente
Kultur Dokumente
26/05/13 17:29
ARTICLES
PROGRAMMATION
Curriculum Vitae
21 2010
juil
ANDROID // PROGRAMMATION
Rechercher
SURVIE
Vacances Sjour Voyage pas Cher sur Promovacances : Agence de Voyage, Promotions
www.promovacances.com
CATGORIES
Andengine (5) Android (21) Application (1) Articles (2) Non class (2) Programmation (31)
LIENS
Developpez Forum XNA FrAndroid Le Studio cration site internet bordeaux Site du zero SLouge Smartphone France
Puis dans notre activit principale, nous allons rcuprer notre ListView et lui affecter un adaptateur grce la mthode setAdapter. Ajoutons-y un objet de type ArrayAdapter, contenant une liste de String (pas les sous-vtements !) avec un layout gnrique ditem que fournit la plateforme par dfaut et enfin la liste des donnes. 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 public%class%MonActivite%extends%Activity%{ % ListView%lvListe; % @Override % public%void%onCreate(Bundle%savedInstanceState)%{ % super.onCreate(savedInstanceState); % setContentView(R.layout.main); % lvListe%=%(ListView)findViewById(R.id.lvListe); % String[]%listeStrings%=%{"France","Allemagne","Russie"}; % lvListe.setAdapter(new%ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,listeStrings)); % } % }
NUAGE
2D 9patch actions bars adapter
android
tutoriel
tutorial
tweeter wifi
xml XNA
http://www.ace-art.fr/wordpress/2010/07/21/tutoriel-android-partie-6-les-listview/
Page 1 sur 13
26/05/13 17:29
COMMENTAIRES RCENTS
Light_Z3R0 dans Tutoriel sur la srialisation en C# Partie 1 Dim69 dans [Tutoriel Android] Partie 16 Base de donnes azizachom dans [Tutoriel Android] Partie 14 Wifi Anael Lefebvre dans [Tutoriel Android] Partie 16 Base de donnes Anael Lefebvre dans [Tutoriel Android] Partie 16 Base de donnes
ARCHIVES
octobre 2012 (1) juin 2012 (1) janvier 2012 (2) novembre 2011 (1) octobre 2011 (3) juillet 2011 (3) juin 2011 (1) dcembre 2010 (4) octobre 2010 (3) septembre 2010 (5) juillet 2010 (8) avril 2010 (6)
Comme vous le voyez, on reste dans le B.A-BA de lobjet classique. Puis dans notre activit, on cre notre bibliothque. 1 List<Livre>%maBibliotheque%=%new%ArrayList<Livre>(); Puis, crons une fonction se nommant RemplirLaBibliotheque(); 01 02 03 04 05 06 07 08 09 10 11 private%void%RemplirLaBibliotheque()%{ % maBibliotheque.clear(); % maBibliotheque.add(new%Livre("Starcraft%2%:%Les%diables%du%ciel", "William6C%Dietz")); % maBibliotheque.add(new%Livre("L'art%du%dveloppement%Android",%"Mark Murphy")); % maBibliotheque.add(new%Livre("Le%seuil%des%tnbres",%"Karen%Chance")); % }
Jai ajout trois livres alatoires trouvs sur Amazon, mais vous pouvez en prendre dautres, je ne serais pas vex pour autant Maintenant, nous allons crer notre propre Adaptateur pour grer ces donnes. On va commencer par crer un layout qui formera notre item comme ceci :
http://www.ace-art.fr/wordpress/2010/07/21/tutoriel-android-partie-6-les-listview/
Page 2 sur 13
26/05/13 17:29
Cration itemlivre.xml Puis dans le fichier XML, on rajoutera 2 textview avec respectivement un id Titre et un id Auteur. 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 <?xml%version="1.0"%encoding="utf68"?> % <LinearLayout % xmlns:android="http://schemas.android.com/apk/res/android" % android:orientation="vertical" % android:layout_width="fill_parent" % android:layout_height="wrap_content"> % <TextView % android:id="@+id/tvTitre" % android:layout_width="fill_parent" % android:layout_height="wrap_content" % /> % <TextView % android:id="@+id/tvAuteur" % android:layout_width="fill_parent" % android:layout_height="wrap_content" % /> % </LinearLayout>
Cest simple mais efficace ! Nous voil avec un gabarit correct pour travailler, maintenant on va se pencher sur notre adaptateur personnalis. Crez une classe nomme LivreAdapter, hritant de la classe BaseAdapter.
Cration de classe LivreAdapter Voil, notre classe est gnre et on va pouvoir la modifier comme nous le voulons. Le gnrateur de classes rajouter directement les mthodes remplir pour le bon fonctionnement de ladaptateur, comme a nous naurons pas de temps perdre (merci Eclipse). On retrouvera ces mthodes : getCount() qui retournera le nombre dlments dans notre liste. getItem() qui retournera notre objet livre la position indique. getItemId() qui retournera lid du livre. getView() qui retournera la vue de litem pour laffichage.
http://www.ace-art.fr/wordpress/2010/07/21/tutoriel-android-partie-6-les-listview/
Page 3 sur 13
26/05/13 17:29
Vous suivez toujours ? Oui alors on continue ! Remplissons nos diffrentes mthodes, tout dabord getCount qui retournera la taille de la bibliothque. 1 @Override 2 % 3 4 5 6 7 public%int%getCount()%{ % return%biblio.size(); % }
Et la troisime, qui sera getItemId qui retournera la position de litem. 1 2 3 4 5 6 7 @Override % public%long%getItemId(int%position)%{ % return%position; % }
Maintenant la dernire, qui est la plus difficile au dbut mais vraiment au dbut ^^ Crons une classe juste avant cette mthode (oui on peut le faire en JAVA une classe dans une classe !) qui sera nomme ViewHolder. Elle nous servira mmoriser les lments de la liste en mmoire pour qu chaque rafraichissement lcran ne scintille pas (cest un genre de buffer comme en graphisme). 1 2 3 4 5 6 7 private%class%ViewHolder%{ % TextView%tvTitre; % TextView%tvAuteur; % }
Dans la mthode, nous allons utiliser un ViewHolder, puis nous allons vrifier que la view prsente nest pas null sinon nous allons la crer, et ensuite charger lXML en mmoire pour lattribuer notre objet. Et enfin tagguer notre objet pour pouvoir le rcuprer la prochaine mise jour graphique. Et pour finir, on y attribue les donnes et on retourne la vue. 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 @Override % public%View%getView(int%position,%View%convertView,%ViewGroup%parent)%{ % ViewHolder%holder; % if(convertView%==%null)%{ % holder%=%new%ViewHolder(); % convertView%=%inflater.inflate(R.layout.itemlivre,%null); % holder.tvTitre%=%(TextView)convertView.findViewById(R.id.tvTitre); % holder.tvAuteur%=%(TextView)convertView.findViewById(R.id.tvAuteur); % convertView.setTag(holder); % }%else%{ % holder%=%(ViewHolder)%convertView.getTag(); % } % holder.tvTitre.setText(biblio.get(position).getTitre());
http://www.ace-art.fr/wordpress/2010/07/21/tutoriel-android-partie-6-les-listview/
Page 4 sur 13
26/05/13 17:29
Voil notre fonction termine ! Retournons dans notre activit principale et modifions notre code pour que la liste prenne en paramtres notre LivreAdapter comme ceci : 1 LivreAdapter%adapter%=%new%LivreAdapter(this,%maBibliotheque); 2 % 3 lvListe.setAdapter(adapter); Lancez lapplication et voyez par vous mme !
Ecran final Si vos donnes changent, penser utiliser la fonction adapter.notifyDataSetChanged(); qui aura pour effet de notifier le changement de donnes et de recharger la liste automatiquement. Jespre que ce tutoriel vous aura plus et je vous dis la prochaine Voici les sources : FormationListeAdapter
0
Jaime 3 personnes aiment a.
Articles relatifs
[Tutoriel Android] Partie 19 Accder aux webservice via Android SAUTOFORMER AU DVELOPPEMENT MOBILE [Tutoriel Android] Partie 18 Contrles personnaliss
Partager
oromis
il y a 7 mois
http://www.ace-art.fr/wordpress/2010/07/21/tutoriel-android-partie-6-les-listview/
Page 5 sur 13
26/05/13 17:29
Bonjour, J'ai suivi ce tuto qui est trs bien fait est vraiment trs utile mais j'ai un problme bizarre que je n'arrive pas rsoudre. En effet entre chaque item de ma liste il y a un espace de la taille de l'cran du tlphone. Et donc pour accder l'item suivant il faut scroller tout l'cran. J'ai pourtant bien mis la hauteur du layout des items en wrap_content mais j'ai beau changer cette hauteur mme avec une valeur fixe cela ne change rien. Avez vous une ide de ce qui pourrait causer cela?
3 duguet
Rpondre
il y a 7 mois
Partager
Dsol je viens de trouver. Mga grosse erreur de dbutant (double dclaration). A vouloir tester plusieurs solutions on semmele !!!
Rpondre duguet
Partager
il y a 7 mois
Bonjour, merci pour ce tuto gnial. Je vous contacte car je bloque btement sur une listview. En fait j'ai une activit qui gre un bouton, un textview et une listview (la fameuse). Quand je clique sur le bouton a ouvre une autre activit en attendant un rsultat (StartActivityForResult). Dans la fonction qui analyse les rsultats je rcupre un string (via l'intent) et je souhaite ajouter ce string la fin de ma listview. Ce que j'ai compris des listview : la listview est associe un adapter via la fonction setAdapter ; l'adapter est li une liste. Vu que je souhaite juste ajouter un string j'utilise un ArrayAdapter (pas de custom). Suite la rcupration du string via l'intent j'ai essay 2 mthodes : mettre jour la liste puis appeler la mthode notifyDataSetChanged de l'adapter OU appeler directement la mthode add de l'adapter => mme rsultat l'mulateur me dit Unfortunately, appli has stopped... Je ne m'en sors pas public class MainActivity extends Activity {
Afficher plus
Partager
il y a 8 mois
Bonsoir, Merci beaucoup pour ce trs bon tuto! J'aimerais aller un peu plus loin et j'aimerai ouvrir une nouvel activit lors d'un clic sur un lments. Malheureusement je n'arrive pas rcuprer le titre ou l'auteur dans la fonction onItemClick(), auriez-vous une piste?
Rpondre Philippe Chretien
Partager
il y a 10 mois
Merci beaucoup pour cet excellent tuorial ... Je l'ai appliqu la lettre (ou presque) et a fonctionne trs bien!
Rpondre Mick
Partager
il y a 10 mois
Salut et merci pour ce tuto! Nanmoins, je bloque au niveau de cette ligne convertView = inflater.inflate(R.layout.itemlivre, null); mon Eclipse m'annonce une erreur au niveau de itemlivre : "itemlivre can't be resolve or is not a field" Je suis un peu perdu mais merci pour tout!
Rpondre Acesyde
Modo
Partager
Mick il y a 10 mois
26/05/13 17:29
Vrifie que le R n'est pas le R de android.R et bien le R de ton projet. (Problme avec les imports)
1 Rpondre Mick Partager
Acesyde il y a 10 mois
Salut, merci pour ta rponse, a devait tre a car il me mettait en import android.R avec le triangle jaune. Ma classe tant dans un autre package, il galrait pour trouver et du coup, j'ai "feint" en crant une classe DevTools qui fait un get sur le R de mon projet et j'arrive rcuprer les infos, mais c'est un peu contraignant et pas trs joli. Du coup, avec ton coup de main, a passe ! Merci beaucoup. Maintenant, je suis embt car je veux faire appel un web service distant (sur serveur TOMCAT - une appli dveloppe en GWT), mais je patauge un peu pour l'url de connexion. Mais bon, j'ai la foi ! \o/ Merci beaucoup en tout cas.
Rpondre niten
Partager
il y a 11 mois
Merci beaucoup un trs bon tuto que malheureusement j'ai mis pas mal de temps trouver. J'ai commenc Android hier matin (installation sdk, eclypse etc...), et aprs 24h a chercher de la doc, je peux dire que c'est le meilleur tuto que j'ai vu jusqu'ici. Encore merci. Du coup, je vais pouvoir finir mon appui, livrer mon client, et ne plus jamais rien accepter pour les tlphones qui ne lise pas les swf ^^.
Rpondre debutanteandroid
Partager
il y a un an
bjr..j'ai essayer d'adapter le tuto mon application..j'ai pas arriver afficher la liste :(..cette dernire est crer avec des donnes transfrer d'une autre activit: voila un bout de code: public class CommandeAct extends Activity{ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); try{ setContentView(R.layout.listartcmd); } catch(Exception e) { Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_LONG).show(); }Bundle extra = getIntent().getExtras(); String variable = extra.getString("Article"); String vari = extra.getString("prixval"); //cration d'une ligne de commande Ligne_Cmd ArtCmd = new Ligne_Cmd(1,variable,vari,1);//cration d'un element de liste sous forme Ligne_Cmd List<ligne_cmd> listcmd =new ArrayList<ligne_cmd>(); Afficher plus
Rpondre Eiji
Partager
il y a un an
Salut! Super tuto, c'est exactement ce que je cherchais, mais je rencontre un petit problme au niveau de maListe.setAdapter(adapter);Ca plante et j'ignore pourquoi... Ma bibliothque est pourtant bien remplie, je ne trouve pas. Aurais tu une piste?
Rpondre Acesyde
Modo
Partager
Eiji il y a un an
Partager
il y a un an
http://www.ace-art.fr/wordpress/2010/07/21/tutoriel-android-partie-6-les-listview/
Page 7 sur 13
26/05/13 17:29
Partager
il y a un an
Salut, je viens de raliser ton tutoriel. Le rsultat final marche trs bien sur ma tablette. Cependant, je pense pas que j'ai tout compris dans la conception... par exemple je ne comprend pas dans la classe LivreAdapter: on code la mthode getView, qui est ensuite appele nulle part. Comment cela fonctionne t'il ? o est ralis l'appel vers cette mthode ? cordialement,
Rpondre Acesyde
Modo
Partager
gallien il y a un an
C'est la listview qui appel son Adapter et cet adapteur contient forcement getView (d'ou l'hritage) La Listview doit possder un adapter drivant du type BaseAdapter Nous on hrite de BaseAdapter, donc c'est impeccable :)
1 Lionel M
Rpondre
il y a un an
Partager
Slt merci pour le tuto, je l'ai utilis pour l'adapter a mes besoin, et j'ai pu rsoudre mon soucis pour mettre se couleur dans ma listview. Mais un autre problme es survenu. c'est problme c'est java.lang.StackOverflowError. elle ce produit quand je slectionne un item, et je ne vois pas comment le rsoudre. 06-05 20:41:45.777: E/AndroidRuntime(484): FATAL EXCEPTION: main 06-05 20:41:45.777: E/AndroidRuntime(484): java.lang.StackOverflowError 06-05 20:41:45.777: E/AndroidRuntime(484): at android.util.Log.println(Log.java:289) 06-05 20:41:45.777: E/AndroidRuntime(484): at com.android.internal.os.AndroidPrintStream.log(AndroidPrintStream.java:47) 06-05 20:41:45.777: E/AndroidRuntime(484): at com.android.internal.os.LoggingPrintStream.println(LoggingPrintStream.java:311) 06-05 20:41:45.777: E/AndroidRuntime(484): at ml.lionel.legta.ServeurAdapter.getItemId(ServeurAdapter.java:148) 06-05 20:41:45.777: E/AndroidRuntime(484): at ml.lionel.legta.ServeurAdapter.getItemId(ServeurAdapter.java:149) 06-05 20:41:45.777: E/AndroidRuntime(484): at
Afficher plus
Rpondre Acesyde
Modo
Partager
Lionel M il y a un an
Quand tu as un stackoverflow c'est qui tu as dpass la taille de t'as liste la slection. Tu dois surement slectionner un item qui est hors des bornes de ta liste.
Rpondre Nicolas Sornin
Partager
il y a un an
Tout bon tuto ! Je dev sous API 8 et je n'ai pas accs aux fragments. Je pensais tre donc oblig de me restreindre une ListActivity mais votre tuto et les ListView me sauvent ;-) Ce qui fait le petit plus, c'est le renseignement sur l'actualisation de la vue, utile quand on rcupre la liste depuis un WebService ! Un tout grand merci et une bonne continuation !
Rpondre Geo
Partager
il y a un an
Gnial, ces tuto, je dois en tre mon 4ieme. Super. Merci. Pour celui ci, j'ai eu un petit souci, rsolu, mais qui peut tre interessant : a plantait au dmarrage sur la ligne "setContentView(R.layout.main); " Et puis j'ai mis RemplirLaBibliotheque(); avant cette ligne et non pas aprs, et a marche. Mais du coup je me demande quand il faut appeler setContentView() en
http://www.ace-art.fr/wordpress/2010/07/21/tutoriel-android-partie-6-les-listview/ Page 8 sur 13
26/05/13 17:29
Mais du coup je me demande quand il faut appeler setContentView() en gnral dans le oncreate. Pas tout fait au dbut apparemment ?
Rpondre Guest
Partager
il y a un an
Bonjour, Lorsque j'applique l'adapter a ma listView, rien ne se passe et je catch un nullpointerExeption ? Aurais-tu une piste stp ? Merci !
Rpondre Acesyde
Modo
Partager
Guest il y a un an
Acesyde il y a un an
J'ai rsolu tout seul, il fallait mettre " setContentView(R.layout.main);" au tout dbut :) Dsol du drangement !
Rpondre Acesyde 1 Dacaramel
Modo
Partager
Guest il y a un an
Super si tu as trouv ;)
Rpondre Partager
il y a un an
Tres bon tuto! merci! j'ai essay vos codes en ajoutant les icones avec listview mais en vain (je suis encore noob!!). Avez-vous un example avec listview +icon. Si vous pouvez me donner quelques pistes sur ce que j'ai fait. Ca serait super cool. dans :public class Livre{} j'ai aujout: public class Livre{ private ImageViw image; . ....... public Livre( ImageView image,String titre, String auteur) { this.image = image; this.titre = titre; this.auteur = auteur; } public String getImage() { return image; } Afficher plus
Rpondre Acesyde
Modo
Partager
Dacaramel il y a un an
Tu as dj tout ce qu'il te faut je vois. en faites c'est pas maBibliotheque.add qui prend 3 args mais la classe Livre d'ou le new Livre(arg1,arg2,arg3) je vois qu'en plus tu as dj implment les 3 arguments dans le constructeur de la classe Livre. En suite pour l'image tout est correctement fait dans ton code il reste juste rajouter un imageview dans ton template xml de ton item. Ensuite le tour est jou. J'espre avoir t assez clair sinon fait moi signe :)
Rpondre Thomy
Partager
il y a un an
As tu une ide si l'on peut avoir une ArrayList dans ta classe Livre (pour grer des commentaires sur un livre, plusieurs auteurs...) ?
Rpondre Acesyde
Modo
Partager
Thomy il y a un an
http://www.ace-art.fr/wordpress/2010/07/21/tutoriel-android-partie-6-les-listview/
Page 9 sur 13
26/05/13 17:29
Bien entendue, on peut faire ce que l'on veut ;) Aprs c'est plus un problme de modlisation du concept qu'on problme de dveloppement.
Rpondre Thomy Partager
Acesyde il y a un an
OK, parce que je suis en train d'essay cela justement et je ne sais pas si je procde de la bonne faon.En fait, dans l'itemLivre.xml, j'ai nouveau une ListView qui correspond un champ ArrayList de ma classe Livre. Je procde de la mme faon pour cette nouvelle ListView avec un adapter que j'appelle cette fois ci dans LivreAdapter pour pouvoir afficher ces donnes dans mon appli mais j'ai qu'un seul item qui apparat. Donc je me demandais si je procdais de la bonne faon
Rpondre Acesyde
Modo
Partager
Thomy il y a un an
Le mieux serait d'avoir une activit affichant la liste des livres, quand tu clic sur le livre tu ouvres une nouvelle activits avec la liste des commentaires. C'est simple maintenir et la navigation est fluide. Imaginons le cas ou tu charges les commentaires lorsque tu clics sur le livre et non au dmarrage de l'application, sinon a prend trop de mmoire. Tu as toutes les cartes en mains dsormais
Rpondre Sickly
Partager
il y a un an
Merci pour ce tuto. Par contre il y a un problme ds lors que l'on a des entier pour cette ligne: holder.tvAuteur.setText(biblio.get(position).getAuteur()); Sinon sa fonctionne niquel :)
Rpondre Partager
Sickly il y a un an
Pierre-Emmanuel Mercier
Bonjour Sickly, Regarde dans ton logcat l'erreur qui est leve elle t'informera rapidement du problme ;)
Rpondre shibakaneki
Partager
il y a un an
Concernant le problme du R.java qui n'est plus gnr. Est-ce que par hasard tu n'aurais pas supprim le rpertoire 'gen' ? C'tait mon cas et j'avais le mme problme. En le recrant manuellement et en faisant un Refresh + rebuild du projet le fichier R.java a t regnr. Pas beosin d'ajouter l'import explicitement.
Rpondre Akiat
Partager
il y a 2 ans
Merci pour ta rponse, cependant, la seule chose qui a fonctionn t de recrer un nouveau projet... Bizarre...
Rpondre Maxime
Partager
il y a 2 ans
Encore un bon tuto qui me permet d'avancer progressivement vers mes objectifs. Juste un petit dtail : Le premier code, correspondant au layout principal, Pour la ListView, vous avez mis : android:layout_height="fill_parentA" Le A me semble de trop, non ?
Rpondre Partager
http://www.ace-art.fr/wordpress/2010/07/21/tutoriel-android-partie-6-les-listview/
Page 10 sur 13
26/05/13 17:29
Pierre-Emmanuel Mercier
Bonjour Maxime, Effectivement une petite coquille c'est glisse dans l'article ;)
Rpondre Akiat
Partager
il y a 2 ans
Le problme viens en fait du fait que Eclipse ne veut pas me gnrer de R.java... Malgr les Clean, build, ajout de layouts, modification d'un xml... La y'a vraiment un truc qui m'chappe...
Rpondre Partager
Akiat il y a 2 ans
Pierre-Emmanuel Mercier
le R.java ce trouve dans les imports en haut de ta page, supprime l'import contenant R. normalement il va t'offrir de nouveau la bonne possibilit
Rpondre Akiat
Partager
il y a 2 ans
Re bonjour tous. Me voila encore confront un problme, que je n'arrive pas rgler... En fait il s'agit du Ressource Manager "R". R cannot be resolved to a variable. Le fait est que si je met un "import android.R;" ce n'est plus le R qui n'est pas reconnu, mais le "main" de R.id.main (pareil pour lvListe). ce qui est normal car il cherche dans le Ressource Manager du package android... Mais l'auto-complete sur un "import com.MyListView" me le complete directement par "import com.MyListView.*;" . Et si j'essai juste d'importer import com.MyListView.R; il ne le trouve pas... Je ne comprends vraiment pas. Jespre que quelqu'un pourra m'aider... Merci par avance.
Rpondre Imene Sbiaat
Partager
il y a 2 ans
I like it
Rpondre Tomny
Partager
il y a 2 ans
Bonjour, j'ai bien appliquer ce tuto qui fonctionne trs bien. J'ai voulu l'tendre en utilisant la mise jour des donnes et cela fonctionne un peu dtail prs, ma liste se rpte chaque modification (elle se retrouve en dessous de la version prcdente). Je ne comprends pas trop pourquoi. :dizzy: Pour info j'ai passer mon adapter en singleton car je dois le modifier depuis plusieurs autres classes ou activity de mon application. Merci encore.
Rpondre cadavor
Partager
il y a 2 ans
En continuant le debug je me suis rendu que lajout dune progressBar et donc dun thread entrainait ce problme de retard!!! En le supprimant le problme nest plus prsent mais la progressBar non plus -_Comment avoir les 2?
Rpondre Partager
cadavor il y a 2 ans
Pierre-Emmanuel Mercier
http://www.ace-art.fr/wordpress/2010/07/21/tutoriel-android-partie-6-les-listview/
Page 11 sur 13
26/05/13 17:29
Un thread traitant les donnes, une progressbar dans un progress dialog pour eviter que l'utilisateur bricole pendant ce temps et voil .
Rpondre cadavor
Partager
il y a 2 ans
En continuant le debug je me suis rendu que l'ajout d'une progressBar et donc d'un thread entrain ce problme de retard!!! En le supprimant le problme n'est plus prsent mais la progressBar non plus... -_Comment avoir les 2?
Rpondre cadavor
Partager
il y a 2 ans
Bonjour, J'ai un gros soucis avec une listview que j'ai implement partir de ce tuto (trs bien fait et trs instructif merci!!!). En Run, la liste n'est pas rempli la cration (aucun getView d'appel). Si je la rafraichit manuellement, j'obtiens un beau crash!!! 01-24 22:48:54.856: INFO/System.out(221): getView 0 of 14 01-24 22:48:55.056: INFO/System.out(221): getView 1 of 14 01-24 22:48:55.316: INFO/System.out(221): getView 2 of 14 01-24 22:48:55.426: INFO/System.out(221): getView 3 of 14 01-24 22:48:55.526: INFO/System.out(221): getView 4 of 14 01-24 22:48:55.626: INFO/System.out(221): getView 5 of 14 01-24 22:48:55.716: INFO/System.out(221): getView 6 of 14 01-24 22:48:55.826: INFO/System.out(221): getView 7 of 14 01-24 22:48:55.926: INFO/System.out(221): getView 8 of 14 01-24 22:48:56.026: INFO/System.out(221): getView 9 of 14 01-24 22:48:56.126: INFO/System.out(221): getView 10 of 0 01-24 22:48:56.296: ERROR/AndroidRuntime(221): java.lang.IndexOutOfBoundsException: Invalid location 10, size is 0 Afficher plus
Rpondre Gg
Partager
il y a 2 ans
En tant que nophyte j'ai t ravi de dcouvrir que l'on pouvait associer une structure de donne libre n'importe quel View (via la mthode setTag) mais son utilisation dans ce tutoriel a un peu frein ma comprhension de l'Adapter. Or le tag n'tait pas du tout ncessaire ! Si l'on ne l'utilise pas alors la mthode getView override ne contient plus que trois lignes (plus le return) : if (convertView == null) convertView = inflater.inflate(R.layout.item_livre, null); ((TextView)convertView.findViewById(R.id.tvTitre)).setText(biblio.get(position).getTitre()); ((TextView)convertView.findViewById(R.id.tvAuteur)).setText(biblio.get(position).getAuteur()); Ca me semble plus lisible ainsi... Merci pour cet excellent tutoriel ! (un de plus)
Rpondre Cyril Mottier
Partager
il y a 2 ans
Tutorial intressant mais composs de quelques petits problmes ... - Le layout comprend une dans un ... le est en fait inutile puisqu'il ne contient qu'un seul et unique lment - L'lment dispose de l'attribut android:layout_height="wrap_content" ... c'est bien sr possible mais fortement dconseill car cela implique que la ListView doit mesurer l'ensemble des lments avant de pouvoir s'afficher. Dans le cas d'une ListView a 3 lment a va mais si on a 10000 lments, a devient plus que problmatique. Il est donc conseill de mettre android:layout_height="fill_parent". - Android s'crit "Android" et pas "Androd" :p - Pour amliorer tout a .. autant utiliser une ListActivity ;) Encore bravo pour ces tutos.
Rpondre Partager
Cyril Mottier il y a 2 ans
Pierre-Emmanuel Mercier
Salut Cyril, Merci pour le coup du wrap_content je ne savais pas dans le cas du listview, merci de le prciser :)
http://www.ace-art.fr/wordpress/2010/07/21/tutoriel-android-partie-6-les-listview/ Page 12 sur 13
26/05/13 17:29
listview, merci de le prciser :) Pour le reste je vais corriger a, et bravo toi aussi pour tes tutoriaux et ton p'tit Greendroid
Rpondre Sofienne
Partager
il y a 3 ans
Pierre-Emmanuel Mercier
Partager
il y a 3 ans
SUPER TUTO, tu aurais pus t'arrter sur un simple remplissage de Listeview mais tu as t plus loin, j'ai pu rsoudre ma problmatique simplement, donc un grand merci. Je m'en vais lire tous les autres tutos. :smile: :biggrin:
Rpondre Partager
Ace-art.fr
http://www.ace-art.fr/wordpress/2010/07/21/tutoriel-android-partie-6-les-listview/
Page 13 sur 13