从SQLite中删除项目会删除下一个项目

时间:2016-05-03 09:27:57

标签: android sqlite listview

我编写了从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;
}

0 个答案:

没有答案