2013-07-25 42 views
2

正如問題所述,我只是想將多個標記添加到XML視圖。例如,假設我想設置一個字符串數組和一個單獨的字符串從我的資源。我知道如何單獨做它們,但我想知道是否有一種方法可以直接在XML代碼中將多個標籤附加到視圖中。如何直接在XML中爲一個視圖添加多個標記?

編輯:

我的計劃是爲具有的LinearLayout(升#1)包含的一個不同的LinearLayout的動態量(升#2),並且查看內將有微調和EditText上。我需要一個用於EditText提示的標籤,另一個用於填充Spinner的字符串數組。在整個佈局中,有多個l#1,每個使用l#2動態填充它,並且每個需要基於它們用於的內容的不同提示和字符串數組。

我的下一個想法是添加一個整數作爲標記來表示l#1,並在我的代碼中使用Switch/Case塊來用正確的提示和字符串數組填充l#2的子元素。

回答

3

我不認爲這在XML中是可行的,但是在代碼中,您可以做的是創建一個自定義對象,該對象包含您需要的字符串並將其設置爲標記。

class CustomTagObject { 
    public List<Strings> strings; 
    public String myString; 
} 

再後來

CustomTagObject tagObj = new CustomTagObject(); 
tagObj.strings = new ArrayList<Strings>("String 1", "String 2"); 
tagObj.myString = "String from resources"; 
view.setTag(tagObj); 

如果您解釋一下爲什麼要持有這些物品的標籤,我或許可以幫你找到一個替代辦法?

+0

我只是增加了一個編輯添加更多的細節和可能的解決方案。隨意提出一個更有效的解決方案。 – Spit

+0

該解決方案效果很好。我忘了你可以附加任何對象作爲標籤。 +1 – speedynomads

0

以上解決方案有效,但用法錯誤(它會增加管理鍵/值映射的額外開銷)。

上面實現的更好的方法是使用setTag的重載方法,它允許您指定與該值關聯的id。

方法簽名:

public void setTag(int key, Object tag) 
相關問題