4

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

<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>
4

3 回答 3

3

根据这个类似帖子中的人看来,它似乎无法完成。

如何从 android XML 中的 <string-array> 资源访问 <item>?

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

于 2013-01-16T23:59:45.353 回答
2

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

在文件 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>

希望能帮助到你。

于 2015-05-12T15:57:16.247 回答
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);
        }
        }
于 2013-01-16T23:55:33.870 回答