5

おそらく私の質問でわかるように、私はアンドロイド開発にかなり慣れていません。res/menu フォルダーと res/layout フォルダーの両方があることがわかりました。どちらにも、各アクティビティの XML ファイルが含まれています。しかし、意識的に res/menu フォルダーを使用したことはありません! res/layout ですべてのスタイリングを行います。res/menu の xml ファイルで何をすればよいですか?

4

3 に答える 3

8

これは、アクティビティの onCreateOptionsMenu メソッドでメニューを作成するために menuInflater と共に使用することを目的としています。

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

この例では、main.xml は次のようになります。

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

    <item
        android:id="@+id/menu_item_1"
        android:title="@string/menu_title2">
    </item>
    <item
        android:id="@+id/menu_item_2"
        android:title="@string/menu_title2">
    </item>
</menu>

また、メニュー項目の 1 つがクリックされたときに実行するアクションは、おそらく次のように onOptionsItemSelected メソッドをオーバーライドすることで実装できます。

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
    switch (item.getItemId())
    {
    case (R.id.menu_item_1):
        this.startActivity(new Intent(this, MyFirstActivity.class));
        return true;
    case (R.id.menu_item_2):
        this.startActivity(new Intent(this, MySecondActivity.class));
        return true;
    default:
        return super.onOptionsItemSelected(item);
    }
}
于 2013-11-07T22:19:27.520 に答える