通过ListView从SQLite数据库中删除一行

时间:2014-02-04 09:04:01

标签: android android-sqlite sqlite

我刚尝试在我的Android App中实现SQLite数据库。也许我没有完全掌握Android开发人员指南,所以,我刚从网上找到了一个很好的教程,website

此外,我只是理解了我需要的一切,并且在DELETION操作之前一直很好地实现。

从上面提到的网站代码,我有这个代码删除单个用户:

// Deleting single contact
public static void deleteUserData(UserData data) {
    final SQLiteDatabase db = open();
    db.delete(USER_TABLE, KEY_ID + " = ?",
            new String[] { String.valueOf(data.getID()) });
    db.close();
}

在我的应用程序中,我从Edittext获取文本并检索它并在ListView上显示它。还实现了“listItem.onItemLongClickListener()”来从ListView中删除一个项目,如下所示:

    @Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position,
        long arg3) {
    //UserData dataView = new UserData();
    //DBAdapter.deleteUserData(dataView);   

    allData.remove(position);
    adapter.notifyDataSetChanged();

    return false;
}

我无法理解如何将正确的参数传递给deleteUserData(UserData数据)方法。

我的问题是如何删除单个项目并相应地设置自动增加的主键值。

P.S:请参阅上面的链接,了解该网站的完整代码参考。

感谢。

1 个答案:

答案 0 :(得分:2)

你可以从click方法的位置变量中获取索引,然后使用与listview绑定的列表中的Userdata dt = userlist[position];这样的位置来获取userdata 然后你可以调用你的删除方法,如deleteData(dt.getID())