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

时间:2013-11-07 22:17:34

标签: android directory

我对android开发相当新,正如你可能在我的问题中所说的那样。我发现我有res / menu文件夹和res / layout文件夹。它们都包含每个活动的XML文件。但是我从来没有用过res / menu文件夹!我在res / layout中完成了所有样式。我在res / menu中的xml文件中怎么做呢?

3 个答案:

答案 0 :(得分:8)

它适用于menuInflater,用于在活动的onCreateOptionsMenu方法中创建菜单。

@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>

单击其中一个菜单项时要执行的操作可以通过覆盖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);
    }
}

答案 1 :(得分:1)

菜单文件夹,如其名称一样,用于存储用于管理xml菜单的xml文件,而不是以编程方式执行。

A simple and good tuto for that

答案 2 :(得分:1)

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

@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="Menu Item">
    </item>
 </menu>

此xml文件生成一个菜单,其中包含一个可单击选项:菜单项

android布局文件用于创建活动的布局。在onCreate方法示例中:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
}

setContentView()询问布局文件的id。 R.layout.main是位于res / layout中的文件,名称为main.xml。此代码将此活动的布局设置为main.xml中指定的内容。

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