Bonjour,

Je developpe une application android , et j'ai un probleme : Lorsque je veux effacer une "note" de ma listview et de ma base de donnée je fais ( dans ma ListFragment ) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
    public void removeNote(Note note)
    {
       notesDB.open();
        notesDB.supprimer(note);
        notesDB.close();
        adapter.remove(note);
        adapter.notifyDataSetChanged();
        Toast.makeText(getActivity(), "You selected : " + note.getTitre(), Toast.LENGTH_SHORT).show();
 
    }
Cela supprime parfaitement dans la base de donnée , et le titre affiché est le bon . Par contre la note supprimée de la ListView est la derniere note de la liste peut importe le quel je veux supprimer ...

Je ne comprends pas du tout d'où cela peut venir , voici mon 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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
 
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
 
import java.util.List;
 
/**
 * Created by atlas on 30/10/14.
 */
public class MonListeAdapter extends BaseAdapter {
 
        private Integer[] images={
                R.drawable.priorite_low,
                R.drawable.priorite_medium,
                R.drawable.priorite_high
        };
        private List<Note> notes;
 
        private Context context;
 
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            LayoutInflater inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 
            View rowview = inflater.inflate(R.layout.listlayout,parent,false);
 
            TextView titre = (TextView)rowview.findViewById(R.id.titre);
            TextView desc = (TextView)rowview.findViewById(R.id.description);
            ImageView img = (ImageView)rowview.findViewById(R.id.img);
 
            titre.setText(notes.get(position).getTitre());
            desc.setText(notes.get(position).getDescription());
            if(convertView==null) {
                img.setImageResource(images[notes.get(position).getImportance()-1]);
            }else {
                rowview = (View) convertView;
            }
 
          return rowview;
        }
 
    public void remove(Note note)
    {
        notes.remove(note);
    }
 
    public MonListeAdapter(Context context,List<Note> values){
        this.context=context;
        this.notes=values;
    }
 
    @Override
    public int getCount() {
        return notes.size();
    }
 
    @Override
    public Note getItem(int position) {
        return notes.get(position);
    }
 
    @Override
    public long getItemId(int position) {
        return notes.indexOf(getItem(position));
    }
 
 
}
Merci d'avance pour votre aide !


EDIT: J'ai résolu le problème en transformant simplement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
            if(convertView==null) {
                img.setImageResource(images[notes.get(position).getimportance()-1]);
            }else {
                rowview = (View) convertView;
            }
en
Code : Sélectionner tout - Visualiser dans une fenêtre à part
img.setImageResource(images[notes.get(position).getImportance()-1]);
.
Par contre je n'ai pas très bien compris ce qu'est ce "convertView" .