我正在开发一个Android应用程序,其中用户通过从列表视图中选择CREATE NEW来填充表单,并且表单存储在SQLite数据库中并显示在listview上。就像这样
仅启动CREATE NEW 填写表单后,ListView就像
创建新
FORM1
FORM2
每个表单引用数据库表中的记录
现在我想做的是。 如果我单击Form1,它应该打开供用户编辑,依此类推。 我使用listview的位置来匹配记录的主要ID并显示相应的记录
但是当我删除记录时,整个问题就出现了
从数据库填充ListView项目时,是否有更优雅的方法来获取它?
答案 0 :(得分:1)
单击某个项目时,您可以通过以下方式获取其ID: 将OnItemClickListener设置为listView,然后获取id:
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> av, View v, int pos, long id)
{
// Do whatever you want. "id" as the id in the db.
}
});
答案 1 :(得分:0)
如果选择数据库中的所有记录,我的意思是没有任何条件,那么查询中表单的位置将与数据库中的位置相同,但如果查询中有条件,则只能获得该位置你的条件查询中的表单。你已经提到了点击,所以在setOnItemClickListener()
你有一个int位置变量来指定ListView
中的项目位置,有时候你有半个可见项目的情况,那么你可以应用公式{{因此,您可以避免使用位置加扰数据。同样在positon = position - listView.getFirstVisiblePosition();
中,您也可以使用相同的getView()
变量。我希望这是合理的。
当您删除记录时,您可以发信号通知int position
重新填充自己。使用当前和新数据(相同的数据减去已删除的记录形成适配器),您也可以发信号(执行查询以删除该记录)数据库以删除记录,如果这是您正在寻找的。 p>