2011-12-06 24 views
3

我正在創建一個自定義View以包含在類庫中。我需要爲動態創建的子視圖添加多個標記(在代碼中,而不是xml),所以這需要我添加使用:View.setTag(int key,Object tag)View.setTag - 需要多個鍵:resourceIDs

關鍵需要是項目R文件中定義的ID,但由於我的所有視圖都是動態創建的,並且代碼正在進入一個庫以供其他項目使用,所以我沒有硬編碼的資源ID在手邊使用。有什麼方法可以編程方式發現幾個定義的資源ID,或者用編程方式定義一些?或者,我是否全力以赴?

感謝

回答

3

請記住,您可以添加任何對象作爲標記。如果要添加到視圖中的數據是動態的,那麼最簡單的方法就是將View作爲標記添加到視圖中。然後將所有的鍵/值對添加到該Hashtable中。另一方面,(處理標籤的代碼),你可以通過將視圖的標籤轉換回Hashtable並遍歷Hashtable.keys()來遍歷這些值。

+0

感謝回覆kabuko和Alex。我希望不必使用另一種數據結構,但我想它解決了我的問題,並且增加了可以忽略的複雜性。給Alex回答,因爲他先回答,兩個答案都是一樣的...... – noobler

1

如果你讀the documentation,它說:

標籤也可以用來存儲在一個視圖中的數據,而不訴諸另一種數據結構。

暗示你可以做的事情是使用另一個數據結構。您可能希望使用ViewHolder模式查看 ,並在標記中存儲該實例。