如何制作独特的android id数组?

时间:2014-10-28 10:46:48

标签: android

我尝试使用具有属性type="id"

的项目声明数组

    

<item name="viewpager_id_base" type="id"/>
<integer-array name="viewpager_dates" type="id">
    <item type="id">0</item>
    <item type="id">1</item>
    <item type="id">2</item>
    <item type="id">3</item>
    <item type="id">4</item>
    <item type="id">5</item>
    <item type="id">6</item>
    <item type="id">7</item>
    <item type="id">8</item>
    <item type="id">9</item>
    <item type="id">10</item>

</integer-array>

但是id不会在R文件中创建id。仅限viewpager_id_base appiared

的ID

3 个答案:

答案 0 :(得分:2)

我知道很久以前这个问题,但有人可能会觉得我的答案很有用。

示例xml:

<resources>
    <item name="first_id" type="id" />
    <item name="second_id" type="id" />
    <item name="third_id" type="id" />

    <array name="default_ids">
        <item>@id/first_id</item>
        <item>@id/second_id</item>
        <item>@id/third_id</item>
    </array>
</resources>

获取id数组:

TypedArray typedArray = getResources().obtainTypedArray(R.array.default_menu_ids);
int[] ids = new int[typedArray.length()];
for(int ind=0; ind<typedArray.length(); ind++){
    ids[ind] = typedArray.getResourceId(ind,0);
}

typedArray.recycle();

getResourceId的第二个参数是默认id,以防你弄乱了。

(老实说,我不知道为什么人们会对这个问题进行投票。问题非常明确。)

答案 1 :(得分:1)

使用以下代码:

<string name="earth">Earth</string>
<string name="moon">Moon</string>

<string-array name="system">
    <item>@string/earth</item>
    <item>@string/moon</item>
</string-array>

请参阅以下链接以获取更多信息: -

Referencing a string in a string array resource with xml

答案 2 :(得分:1)

似乎你不能在xml文件中这样做。 试试这个:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item name="id1" type="id"/>
    <item name="id2" type="id"/>
    <item name="id3" type="id"/>
    <item name="id4" type="id"/>
    <item name="id5" type="id"/>
</resources>

并在你的java代码中:

int[] idArrays = new int[]{R.id.id1, R.id.id2, R.id.id3, R.id.id4, R.id.id5} ;