Morphée Posté(e) 4 novembre 2010 Share Posté(e) 4 novembre 2010 Bonjour à tous ! J'ai cherché une réponse à mon problème sur Google et Frandroid, mais rien trouvé. Erreur incompréhensible..... Je vous explique : j'ai une classe qui hérite de BaseAdapter pour gérer une liste d'éléments; classique. Le problème c'est que dans ma liste, dans mon exemple, j'ai 25 éléments qui doivent être affichés. Android m'affiche bien 25 éléments dans la liste, mais il s'agit d'une répétition des 9 premiers éléments !!!! Dans un exemple où la liste contient 10 éléments, répétition des 5 premiers. J'ai bien implémenté la méthode getCount() et voici ma méthode getView(int position, View convertView, ViewGroup parent) public View getView(int position, View convertView, ViewGroup parent) { TextView item; Log.i("RRRRRRRRRRRRR", position+" -- "+m_patients.get(position).getName()+" -- "+m_patients.size()); if (convertView == null) { item = new TextView(m_context); item.setText(m_patients.get(position).getName()); item.setTextAppearance(m_context, R.style.patient_list_item); } else { item = (TextView)convertView; } return item; } C'est une méthode toute simple ! Le Log.i m'informe que la méthode est appelée 9 fois dans le premier exemple et 5 dans le deuxième. Quelqu'un sait-il d'où vient le problème ? Merci par avance !!!! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Morphée Posté(e) 4 novembre 2010 Auteur Share Posté(e) 4 novembre 2010 Premier élément de réponse : getview() n'est appelé que pour le nombre maximum d'éléments affichables à l'écran. Bon, çà s'est bien foutu. Ensuite quand on scroll la liste, on voit bien grâce au log que le programme explore le reste de la liste sans répétition ...... sauf à l'écran ! La répétition des valeurs n'intervient qu'à l'affichage. Je cherche donc la solution pour rafraîchir le tout après un scroll (notifyDataSetChanged dans getView ne fonctionne pas...). Lien vers le commentaire Partager sur d’autres sites More sharing options...
Morphée Posté(e) 4 novembre 2010 Auteur Share Posté(e) 4 novembre 2010 Problème résolu. J'ai modifié le getView() et tout va bien. Voici le nouveau code. public View getView(int position, View convertView, ViewGroup parent) { TextView item; Log.i("RRRRRRRRRRRRR", position+" -- "+m_patients.get(position).getName()+" -- "+m_patients.size()); item = new TextView(m_context); item.setText(m_patients.get(position).getName()); item.setTextAppearance(m_context, R.style.patient_list_item); return item; } Si çà peut aider quelqu'un ;-) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.