Suppression item adapte supprime le dernier item
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:
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:
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:
1 2 3 4 5
| if(convertView==null) {
img.setImageResource(images[notes.get(position).getimportance()-1]);
}else {
rowview = (View) convertView;
} |
en
Code:
img.setImageResource(images[notes.get(position).getImportance()-1]);
.
Par contre je n'ai pas très bien compris ce qu'est ce "convertView" .