J'ai fais une petite ListView et chacun de mes item affecte un item dans la listView. Je crois comprendre que c'est en rapport avec la position de l'élement qui change... en fonction du scrolling ? Par exemple dans le screen que je vais vous montrer l'item à la position 0 va affecté un item plus bas.
C'est un comportement normal. Pour gérer les listes, il y a une notion de recyclage. Lorsque ta vue n'est plus visible à l'écran, le système la réutilise. Par conséquent, tu hérites du précédent état. Si tu ne souhaites rien afficher dans ton textView, il convient soit de lui setter un texte vide, soit de la cacher en changeant sa visibilité.
Salut @rolandl et merci pour ta réponse claire. Mais comment lui setter un textView vide quand le systeme réutilise la vue ? Pour être plus clair dans ma questionn, Chaque éléments à une position donc y'a t-il un moyen pour que je puisse détecter un changement de vue ?
Merci encore
Edit :
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if(convertView == null){
holder = new ViewHolder();
convertView = inflater.inflate(R.layout.fragment_filtre, null);
holder.myEditText = (EditText) convertView.findViewById(R.id.contentEdit);
holder.myTextView = (TextView) convertView.findViewById(R.id.contentText);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
final String filtre = lesFiltres.get(position).getFiltre();
final String[] specifications = lesFiltres.get(position).getSpecification().split(",");
holder.myTextView.setText(filtre);
...
//Code évenement du clic avec AlertDialog
...
}
return convertView;
}
Edit : @Rolandl j'ai essayé la méthode mais en mettant :
holder.myEditText.setText("");
Chaque filtre que j'entre s'affiche sur la premiere ligne, par exemple en cliquant sur la surface j'ai une checkbox qui s'affiche et quand je coche la valeur "surface > 50", cette valeur s'affiche sur la ligne du filtre "Meublé/Non Meublé"
Edit2 : J'ai finalement tout déplacer de la ListAdapter et je l'ai mis dans l'activity. j'ai créer cette fonction pour retourner modifier la ligne actuel :
Là ça me donne aucun doublons. (Par contre quand je scroll et que je remonte la valeur à de l'item à disparu... je pense que je devrai la sauvegarder avec SavedInstanceState mais c'est un autre problème tant que celui ci est réglé ! )
- Edité par Brokk 23 janvier 2017 à 11:22:36
[Android] ListView : Item A affecte item B
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Mon site - Mon livre sur le XML - Mon blog
Mon site - Mon livre sur le XML - Mon blog
Mon site - Mon livre sur le XML - Mon blog