IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

Répétition Items ListView


Sujet :

Composants graphiques Android

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 22
    Par défaut Répétition Items ListView
    Bonjour, j'ai un léger problème concernant les ListView. C'est à dire qu'à la limite de l'écran de mon écran ( donc bas de la listView) si je scroll, je vois apparaître le premier items une seconde fois et c'est pas ce que je veux..

    Le haut de la liste : http://www.hostingpics.net/viewer.php?id=17537081e1.jpg
    Quand je scroll vers le bas : http://www.hostingpics.net/viewer.php?id=17881166e2.jpg

    J'aimerais que la listView affiche la suite des autres albums

    Voci ma classe Adapter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    public class AdapterList extends ArrayAdapter<Album> {
     
            public AdapterList(Context context, int resource, List<Album> list) {
                super(context, resource);
                for (Album a : list) {
                    add(a);
                }
            }
     
     
            public View getView(int position, View convertView, ViewGroup parent) {
     
                LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
     
                View rowView = inflater.inflate(R.layout.row_album_layout, parent, false);
                TextView textView = (TextView) rowView.findViewById(R.id.label);
                ImageView imageView = (ImageView) rowView.findViewById(R.id.icon);
     
                textView.setText(getItem(position).getTitle());
     
     
                DownloadImageTask dwt = new DownloadImageTask(imageView);
                dwt.execute(getItem(position).getCover());
     
                if (convertView != null)
                    rowView = (View) convertView;
     
                return rowView;
            }
        }

  2. #2
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    Déjà il serait plus judicieux de ne faire ton inflate et tout le toutim que si convertView==null

    PS : et pourquoi un cast dans rowView = (View) convertView; ?
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  3. #3
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Par défaut
    Voici ton code modifié et commenté. Cela devrait mieux fonctionner

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    public class AdapterList extends ArrayAdapter<Album> {
    	private List<Album> list;
    	private LayoutInflater inflater;
     
    	public AdapterList(Context context, int resource, List<Album> list) {
    		super(context, resource);
    		this.list = list;
    		inflater = LayoutInflater.inflate (context);
    	}
     
    	public int getCount ()
    	{
    		return list.size ();
    	}
     
    	public Album getItem (int position)
    	{
    		return list.get(position);
    	}
     
    	public View getView(int position, View convertView, ViewGroup parent) {
    		ViewHolder holder;
    		// On teste si on a déjà rempli l'item
    		if (convertView == null)
    		{
    			convertView = inflater.inflate(R.layout.row_album_layout, parent, false);
    			holder.textView = (TextView) convertView.findViewById(R.id.label);
    			holder.imageView = (ImageView) convertView.findViewById(R.id.icon);
    			convertView.setTag (holder);
    		}
    		else
    		{// Sinon on récupère l'item
    			holder = (ViewHolder) convertView.getTag ();
    		}
     
    		// Récupération de l'album
    		Album album = getItem(position);
     
    		// Affichage du titre de l'album
    		holder.textView.setText(album.getTitle());
     
    		// Téléchargement et affichage de l'image
    		DownloadImageTask dwt = new DownloadImageTask(holder.imageView);
    		dwt.execute(album.getCover());
     
    		return convertView;
    	}
     
    	private class ViewHolder {
    		TextView textView;
    		ImageView imageView;
    	}
    }
    N'hésites pas à poser des questions s'il y a des choses que tu ne comprends pas.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 22
    Par défaut
    Merci pour cette réponse ! je vous tiens au courant dès que je peux tester !

Discussions similaires

  1. longclick item listView
    Par l-amoureu dans le forum Composants graphiques
    Réponses: 4
    Dernier message: 01/03/2011, 17h30
  2. clic sur item listview fonctionne pas
    Par JCMANSION dans le forum Composants graphiques
    Réponses: 2
    Dernier message: 07/12/2010, 13h06
  3. récupérer contenu item (Listview)
    Par Hellgast dans le forum C++Builder
    Réponses: 1
    Dernier message: 13/03/2010, 20h37
  4. Problème agencement items ListView
    Par Ju2Pom dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/10/2007, 11h09
  5. [c#] doubleclick sur item listview
    Par TERRIBLE dans le forum Windows Forms
    Réponses: 3
    Dernier message: 21/05/2007, 10h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo