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 に答える