2011-07-11 31 views
0

搜索很多類似的問題發佈在stackoverflow和其他論壇幾天後,我決定發佈這個,因爲我找不到答案我是尋找(我可能錯過了明顯的)。如何在listview中使用simpleadapter創建一個項目的唯一ID在onListItemClick

讓我們說我有hashmaps的數組列表,它依次包含2個項目,1 - 從數據庫表中檢索的唯一ID和2 - 國家的名稱。

我已經在佈局xml中定義了我的listview,並且還有一個單獨的佈局,其中國家名稱作爲文本視圖。我有一個activity類,它擴展了listactivity,我已經將contentview設置爲包含listview佈局的佈局。

我已經創建了一個簡單的適配器,使用這個散列表和countryname字段名(我只想在列表視圖中顯示國家名) - 視圖顯示正常,沒有問題。

現在,當點擊視圖上的項目時,onListItemClick方法會按預期方式被調用,並且我可以根據位置來檢索countryname。但我實際上想要得到的是最初存儲在數組列表(hashmap)中的國家的ID,但未包含在要在列表視圖中顯示的項目列表中。有什麼方法可以獲得該ID嗎?當我使用遊標適配器時,同樣的onlistitemclick能夠給我ID參數中數據的uniqueID,但是當我使用simpleadapter時,在回調中傳遞的id似乎與位置相同。

對此的任何領導都非常感謝,這是安靜的可能我可能錯過了明顯的。

回答

0

爲什麼不擴展簡單適配器以使實例變量可以設置爲id?

+0

謝謝。我想知道是否有一種方法可以使用默認適配器來實現這一點,如果列表視圖/適配器存儲的值不是顯示的,而是適配器創建中使用的數據結構的一部分,並且它提供了一種方法來檢索與onlistiemclick方法相同 - 在文檔中找不到任何暗示此內容的內容,但只想與專家確認。 –

+0

好吧,如果你看看[simpleadapter]的官方文檔(http://developer.android.com/reference/android/widget/SimpleAdapter.html),你會看到你可以訪問的字段。擴展類的全部意義在於,您可以添加自己的實例變量,就像您的情況一樣。 –

+0

感謝凱文,我現在跟隨2種模式,如果我需要一個自定義適配器,那麼我重寫getItemID方法返回所需的ID,當我不使用自定義適配器時,我將數組列表作爲成員變量列表活動類和onlistitemclck我使用位置變量,並從原始數組列表中檢索ID。 –

相關問題