3

アプリケーションにメニューを配置しようとしていますが、次のように xml にメニュー タグを配置すると:

<menu
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >
    <item
        android:id="@+id/item1"
        android:title="Item 1">
    </item><item
        android:id="@+id/item2"
        android:title="Item 1">
    </item>
    <item
        android:id="@+id/item3"
        android:title="Item 1">
    </item>
</menu>

グラフィック レイアウトに移動すると、このエラー メッセージが表示されます。

java.lang.ClassCastException
Exception details are logged in Window > Show View > Error Log
The following classes could not be found:
- item (Fix Build Path, Edit XML)
- menu (Fix Build Path, Edit XML)

理由を知っている人はいますか?

4

2 に答える 2

5

xml 名前空間を追加するのを忘れました:

xmlns:android="http://schemas.android.com/apk/res/android"

これを試して:

<menu
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >
    <item
        android:id="@+id/item1"
        android:title="Item 1">
    </item><item
        android:id="@+id/item2"
        android:title="Item 1">
    </item>
    <item
        android:id="@+id/item3"
        android:title="Item 1">
    </item>
</menu>

また、このファイルは res ディレクトリの menu ディレクトリにある別の xml ファイルに保存する必要があることにも注意してください。

アクティビティでこのメニューを使用するには、次のコードを追加します (xml ファイルは main.xml であると想定しています)。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}
于 2013-09-02T17:36:43.733 に答える