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 ) :
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 ...
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(); }
Je ne comprends pas du tout d'où cela peut venir , voici mon adapter :
Merci d'avance pour votre aide !
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)); } }
EDIT: J'ai résolu le problème en transformant simplement :en
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; }.
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" .
Partager