我刚尝试在我的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:请参阅上面的链接,了解该网站的完整代码参考。
感谢。
答案 0 :(得分:2)
你可以从click方法的位置变量中获取索引,然后使用与listview绑定的列表中的Userdata dt = userlist[position];
这样的位置来获取userdata
然后你可以调用你的删除方法,如deleteData(dt.getID())