我编写了从SQLite数据库和listview中删除项目的代码,它总是删除下一个项目。例如,我有3个要删除的项目(“1”,“2”和“3”)
我按项目“1”上的删除但删除了项目“2”
我按删除项目“2”,删除“3”但是,
如果我按删除“3”应用程序崩溃。我不明白出了什么问题。我写的时候
db.delete(books.get(info.position-1))
在MainActivity.java中,当我尝试删除(app停止工作)时,它会让我崩溃。
DBAdapter.java
public void delete(String name)throws SQLException {
SQLiteDatabase db = helper.getWritableDatabase();
if (db == null) {
return;
}
String[] whereArgs = new String[] { name };
db.delete("m_TB", "NAME"+ "=?", whereArgs);
db.close();
}
MainActivity.java
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.add("Delete");
}
public boolean onContextItemSelected(MenuItem item) {
super.onContextItemSelected(item);
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
String name = info.toString();
if (item.getTitle().equals("Delete")) {
db.delete(books.get(info.position));
books.remove(item);
adapter.notifyDataSetChanged();
}
return true;
}