我想使用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。
答案 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();