引用XML中的字符串数组元素(android)

时间:2013-01-16 23:28:51

标签: android xml

如何访问字符串数组的元素

 <string-array name="contextMenuItems">
        <item>Edit</item>
        <item>Info</item>
        <item>Delete</item>        
    </string-array>

来自其他资源xml文件

` <menu>
            <item android:id="@+id/Edit"
                  android:title="@string/contextMenuItems" />

            <item android:id="@+id/Info"
                  android:title="@array/contextMenuItems" />
        </menu>`

3 个答案:

答案 0 :(得分:3)

看起来根据这个类似职位的人不能做到。

How to access <item> from <string-array> resource in an android XML?

我的建议是在加载特定活动时使用一些Java代码填充菜单项,或者为每个菜单项使用单独的@string值。

答案 1 :(得分:1)

我想重新组织字符串资源,如下所示

在文件strings.xml中,

<string name="label_edit">Edit</string>
<string name="label_info">Info</string>
<string name="label_delete">Delete</string>
文件arrays.xml中的

<string-array name="contextMenuItems">
        <item>@string/label_edit</item>
        <item>@string/label_info</item>
        <item>@string/label_delete</item>        
</string-array>

在文件menu.xml中

<menu>
    <item android:id="@+id/Edit" android:title="@string/label_edit" />
    <item android:id="@+id/Info" android:title="@array/label_info" />
</menu>

希望它有所帮助。

答案 2 :(得分:0)

你必须覆盖一个函数:

public boolean onOptionsItemSelected(MenuItem item) 
       {
        // Handle item selection
        switch (item.getItemId()) 
        {
            case R.id.Edit:
                //Handled [0]
                return true;
                case R.id.Info:
                    // Handled [1]
            default:
                return super.onOptionsItemSelected(item);
        }
        }