Android 如何同步列表适配器和光标的行id

Android 如何同步列表适配器和光标的行id,android,listadapter,Android,Listadapter,我有一个数据库,并使用列表适配器将其填充到listview中。当我从listview中删除任何一行时,下一行的id不会改变。例如,如果我有id为1到8的行,并且我删除了第7行,那么新行id为1,2,3,4,5,6,8。但是在数据库中,行ID是1,2,3,4,5,6,7。 如何同步这两个元素,以便使用ListView的onclick事件从数据库访问正确的元素?您提供的信息不够清楚。您正在从列表视图中删除id为7的一行,并且您的表同时包含第7行和第8行。因此,您仍然拥有所需的所有信息。如果您从数据库

我有一个数据库,并使用列表适配器将其填充到listview中。当我从listview中删除任何一行时,下一行的id不会改变。例如,如果我有id为1到8的行,并且我删除了第7行,那么新行id为1,2,3,4,5,6,8。但是在数据库中,行ID是1,2,3,4,5,6,7。
如何同步这两个元素,以便使用ListView的onclick事件从数据库访问正确的元素?

您提供的信息不够清楚。您正在从列表视图中删除id为7的一行,并且您的表同时包含第7行和第8行。因此,您仍然拥有所需的所有信息。如果您从数据库中删除信息表,然后您将删除id为7的行。但您仍然没有任何问题。您可以根据列表项id从表中访问行


所以你可能是在摆弄列表项的位置和列表项ID。考虑ID不是项目的位置。

< P>只需调用以下来更新你的ListVIEW:

cursor.requery();
adapter.notifyDataSetChanged();

你用的是哪种适配器?游标适配器?用BaseAdaptor定制?是的,你是对的。我说的是列表项的位置。实际上我想在这个列表中搜索一个查询。从搜索后得到的游标中,我使用cursor.getLong(cursor.getColumnIndexOrThrow(String ColumnID)。但获取的值未与数据库的该条目同步。每当我从列表中删除任何条目时,都会发生这种情况。填充列表时,请根据表行id设置列表项id。这样,您就可以从列表项中检索实际id并删除具有id的行。