2013-07-31 71 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类的值放在数组中确实是一个好主意。 –