Android-res/菜单和res/布局之间的区别?

Android-res/菜单和res/布局之间的区别?,android,directory,Android,Directory,我对android开发相当陌生,你可能可以从我的问题中看出这一点。我发现我有一个res/menu文件夹和一个res/layout文件夹。它们都包含每个活动的XML文件。但是我从来没有简明扼要地使用过res/menu文件夹!我在res/layout中进行所有样式设置。那么,在res/menu中的xml文件中该怎么做 它与菜单展开器一起使用,用于在活动的onCreateOptions菜单方法中创建菜单 @Override public boolean onCreateOptionsMenu(Menu

我对android开发相当陌生,你可能可以从我的问题中看出这一点。我发现我有一个res/menu文件夹和一个res/layout文件夹。它们都包含每个活动的XML文件。但是我从来没有简明扼要地使用过res/menu文件夹!我在res/layout中进行所有样式设置。那么,在res/menu中的xml文件中该怎么做

它与菜单展开器一起使用,用于在活动的onCreateOptions菜单方法中创建菜单

@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>
@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);
    }
}
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/menu_item_1"
        android:title="Menu Item">
    </item>
 </menu>

菜单文件夹与其名称一样明确,用于存储
xml
文件,这些文件用于使用xml管理菜单,而不是通过编程实现


Android中的菜单是按下菜单底部时在屏幕底部向上拉的菜单。此菜单是在OnCreateOptions菜单类中的活动类中创建的:

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}
如您所见,在本例中,R.menu.main正在“膨胀”。R.menu.main只是res/menu文件夹下名为main.xml的文件。示例菜单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>
@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);
    }
}
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/menu_item_1"
        android:title="Menu Item">
    </item>
 </menu>
setContentView()要求输入布局文件的id。R.layout.main是位于res/layout中名为main.xml的文件。此代码将此活动的布局设置为main.xml中指定的任何内容

几乎所有的Android IDE,包括Eclipse,默认情况下都会创建一个布局和一个菜单文件夹