2011-08-08 44 views
1

我有一個ListView對象,其中AdapterCursorAdapter擴展而來。 onListItemClick()方法中只有(ListView l, View v, int position, long id)參數。我需要查詢我的數據庫_id當前選擇的列表item。但我不希望database行中的_id顯示在列表的行中。因此,我在list_item.xml中創建了額外的TextView,並通過將其設置爲widthheight0px而使其不可見。所以在newView()我可以將這個列表的項目與database中的_id關聯起來。如何將ListView中的每個項目與數據庫中的ID相關聯

我覺得這種方法有點難看。可能還有其他更整潔的解決方案嗎?

+0

嗯,你爲什麼需要「顯示」_id?它根本不必是列表的一部分。 – Suchi

+1

但我不想展示它。 – Eugene

回答

2

您可以使用this ViewHolder模式,它可讓您在行的標記中設置自定義對象。您可以將額外的屬性添加到ViewHolder類(如_id),並在創建ViewHolder對象時進行設置。它還將有助於充實和重複使用視圖。

2

您可以使用View.setTag()來設置關聯自定義對象與您從自定義CursorAdapter返回的任何視圖。然後從您的onListItemClick()訪問此標籤。

+0

我已經使用它將View與ViewHolder關聯起來。我可以爲單個對象設置多個標籤嗎? – Eugene

+0

對不起inazaruk,剛纔意識到我做了相同的回答。 –

+0

@Patrick Kafka,沒有問題:) – inazaruk

相關問題