Android - res/menu和res/layout之间的区别?

Mar*_*ann 5 directory android

我对android开发还很陌生,你可能会从我的问题中看出来.我发现我有res/menu文件夹和res/layout文件夹.它们都包含每个活动的XML文件.但是我从来没有用过res/menu文件夹!我在res/layout中完成了所有样式.我在res/menu中的xml文件中怎么做呢?

wvd*_*vdz 8

它旨在与menuInflater一起使用,以在您的活动的onCreateOptionsMenu方法中创建菜单.

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

对于此示例,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>
Run Code Online (Sandbox Code Playgroud)

单击其中一个菜单项时要采取的操作可以通过覆盖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);
    }
}
Run Code Online (Sandbox Code Playgroud)