2012-10-09 23 views
0

我有一個數據庫,並使用列表適配器在列表視圖中填充它。當我從列表視圖中刪除任何行時,下一行的id不會改變。例如,如果我有從1到8的ID行,我刪除第7行,新行ID是1,2,3,4,5,6,8。但在數據庫中,行ID是1,2,3,4,5,6,7。 如何同步這兩個以便我可以使用ListView的onclick事件從數據庫訪問正確的元素?如何同步列表適配器和光標的行ID

+0

該適配器您使用? CursorAdaptor?使用BaseAdaptor自定義? –

+0

我正在使用EfficientAdapter。 – Khushboo

回答

0

您提供的信息不夠清晰。您將從列表視圖中刪除一行id 7,並且您的表格同時包含第7行和第8行,因此您仍然擁有所有需要的信息。如果從數據庫表,那麼你將刪除id爲7的行。你不會有任何問題。你可以根據你的列表項ID從表訪問行。

所以可能是你搞亂了列表項目的位置和列表項目id.Consider ID不是項目的位置。

+0

是的,你是對的。我在談論列表項目的位置。其實我想在這個列表中搜索一個查詢。從搜索後得到的遊標中,我使用cursor.getLong(cursor.getColumnIndexOrThrow(String ColumnID)。但是獲得的值沒有與我的數據庫的條目同步,並且這種情況發生在我從列表中刪除任何條目時。 – Khushboo

+0

當填充列表時,根據錶行ID設置列表項ID。因此,您可以從列表項中檢索實際的ID並刪除具有該ID的行。 – Rasel

0

只需撥打以下更新您的ListView:

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