使用整数数组Android获取布局

时间:2014-02-28 01:11:33

标签: java android xml

我想使用from my java file检索布局的地址。但是,我得到的是0。

RES /值/ worlds.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <integer-array
        name="world1">
        <item>@layout/lvl_1</item>
        <item>@layout/lvl_1</item>
    </integer-array>
</resources>

和我用来获取数组的Java代码:

Resources res = getResources();
int[] layouts = res.getIntArray(R.array.world1);
setContentView(layouts[0]);

Java代码在我的Logcat上给了我一个0。

1 个答案:

答案 0 :(得分:4)

<item>@layout/lvl_1</item>  

不是Integer的类型。所以在xml中使用数组来存储项目,并在代码中使用obtainTypedArray从xml获取项目数组,然后使用getResourceId将布局ID传递给setContentView,如下所示:

RES /值/ worlds.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <array
        name="world1">
        <item>@layout/lvl_1</item>
        <item>@layout/lvl_1</item>
    </array>
</resources>

在代码集布局中:

TypedArray layouts = getResources().obtainTypedArray(R.array.world1);
int layoutid=layouts.getResourceId(0, -1);
setContentView(layoutid);
layouts.recycle();