当我从列表中删除一个笔记时,它会被取消,但如果我写了另一个笔记,则会再次在列表中显示之前取消的笔记
我希望有人知道如何告诉我这是什么问题。
数据库中的方法,用于删除注释
public boolean deleteNote(Nota nota){
boolean resultDelete = false;
SQLiteDatabase dbLite = this.getWritableDatabase();
String whereClause = "_id = ?";
String []whereArg = { nota.getId() + "" };
long a = dbLite.delete("vasca", whereClause, whereArg);
if (a == -1){
resultDelete = false;
}else{
resultDelete = true;
}
dbLite.close();
return resultDelete;
}
MainActivity ,我有ListView
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
db = Database.getInstance(this);
list = db.listNote();
// inizializza l'ArrayAdapter
noteAdapter = new NoteAdapter();
// setta l'ArrayAdapter
((ListView) findViewById(R.id.list)).setAdapter(noteAdapter);
这里,在覆盖方法getView中我尝试:
imgRemove.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean removeCheck = db.deleteNote(list.get(position));
if (removeCheck){
System.out.println("RIMOSSOOOOOOOOOOOOOOOOOOOOO");
list.remove(getItem(position));
}else{
System.out.println("AAAAAAAAAAAAAAAAAAAAAAAA");
}
noteAdapter.notifyDataSetChanged();
}
});
适配器的InnerClass
class NoteAdapter extends ArrayAdapter<Nota> {
NoteAdapter() {
super(getApplicationContext(), R.layout.item, list);
}
/*
public void swapItems(ArrayList<Nota> list) {
this.noteItem = list;
noteAdapter.notifyDataSetChanged();
}*/
@Override
public View getView(final int position, final View convertView, final ViewGroup parent) {
View row = convertView;
if (row == null) {
LayoutInflater inflater = getLayoutInflater();
row = inflater.inflate(R.layout.item, null);
}
TextView titoloNota = (TextView) row.findViewById(R.id.row);
TextView bkNota = (TextView) row.findViewById(R.id.row);
ImageButton imgRemove = (ImageButton) row.findViewById(R.id.imgDelete);
{
// Settaggio dei colori background e textcolor nel ListView
if (list.get(position).getColore() == Nota.green) {
bkNota.setBackgroundColor(getResources().getColor(R.color.bk_green));
bkNota.setTextColor(getResources().getColor(R.color.bk_yellow));
} else if (list.get(position).getColore() == Nota.yellow) {
bkNota.setBackgroundColor(getResources().getColor(R.color.bk_yellow));
bkNota.setTextColor(getResources().getColor(R.color.bk_green));
} else {
bkNota.setBackgroundColor(getResources().getColor(R.color.bk_red));
bkNota.setTextColor(getResources().getColor(R.color.bk_green));
}
}
// setta il titolo della nota
titoloNota.setText(list.get(position).getTitolo());
// listener per la rimozione della nota tramite imagebutton
imgRemove.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean removeCheck = db.deleteNote(list.get(position));
if (removeCheck){
System.out.println("RIMOSSOOOOOOOOOOOOOOOOOOOOO");
noteAdapter.remove(getItem(position));
}else{
System.out.println("AAAAAAAAAAAAAAAAAAAAAAAA");
}
noteAdapter.notifyDataSetChanged();
}
});
return row;
}
}
答案 0 :(得分:0)
AdapterName.this.notifyDatasetChanged();