2013-07-31 89 views
0

是否有可能在arrays.xml中有佈局ID。我嘗試以下,但它不工作:
將佈局ID添加到arrays.xml中

<integer-array name="layouts_list"> 
     <item>R.layout.layout1</item> 
     <item>R.layout.layout2</item> 
     <item>R.layout.layout3</item> 
     <item>R.layout.layout4</item> 
     <item>R.layout.layout5</item> 
</integer-array> 


任何其他這種選擇嗎?
但是,我可以在constants.java中有一個整型數組,但只是想知道是否有人做了類似於上面的操作。

回答

2

正確的語法是

<integer-array name="layouts_list"> 
    <item>@layout/layout1</item> 
    <item>@layout/layout2</item> 
    ... 
</integer-array> 

,但我敢肯定,這是行不通的,因爲@layout/layout1是整型的不行。

什麼工作,但需要一些手工提取是這樣的:

<array name="layouts_list"> 
    <item>@layout/layout1</item> 
    <item>@layout/layout2</item> 
    ... 
</array> 

您可以使用getResources().obtainTypedArray得到TypedArray表示此陣列。然後,您可以使用getResourceId來獲取資源ID。別忘了recycle()您的TypedArray

+0

我覺得,讓Constants.java中的整數數組看起來好簡單:) – Manjunath

+0

可以,是的。當你在一個數組中混合字符串,可繪製和顏色時,資源數組是非常強大的,但是對於整數ID,Java可能是最簡單的事情(除非你希望數組根據資源限定符改變!) – Delyan

0

也許你可以嘗試在R類中獲得真正的int並將該值放入arrays.xml中。

+3

否 - 請不要暗示。 'R.java'文件是自動生成的,並且資源ID可以隨任何構建而改變。你所建議的將是一個噩夢來支持。 – Squonk

+0

那實際上是真的。我不認爲把R類的值放在數組中確實是一個好主意。 –