点击菜单按钮时未调用Android onCreateOptionsMenu

时间:2013-10-08 08:24:34

标签: android menu

我遇到的问题是,当我点击菜单按钮时,我的应用程序没有显示选项菜单。调试显示在按下菜单按钮后未调用onCreateOptionsMenu(菜单菜单)方法。我有另一个应用程序与菜单相同的代码,它的工作原理。所以现在我的代码:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.app_menu, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()) {
        case R.id.options:
            Intent intent = new Intent(this, OptionsActivity.class);
            startActivityForResult(intent, 1);
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }

}

在res - >菜单 - > app_menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
   <item android:id="@+id/options" android:title="@string/options" /> 
</menu>

我不知道为什么在点击菜单按钮后没有调用onCreateOptionsMenu。我希望你们能帮助我。

编辑:我没有使用Fragments,而onCreateOptionsMenu实际上从未被调用过。不是在应用程序的开头,而是在我点击设备上的菜单按钮时。

4 个答案:

答案 0 :(得分:2)

您的帖子中不确定您是否正在使用片段。如果是这样,您必须按

设置菜单选项
setHasOptionMenu(true);

从Fragment的onCreate()调用此方法,然后会显示选项菜单。

答案 1 :(得分:1)

尝试在app_menu.xml文件中添加这些项目属性:

<item
    android:id="@+id/options"
    android:orderInCategory="100"
    android:showAsAction="never"
    android:title="@string/options"/>

您必须在Strings.xml中为options声明一个字符串

答案 2 :(得分:1)

当应用程序首次启动时,它将在菜单项选择之后调用。

@Override
    public boolean onMenuItemSelected(int featureId, MenuItem item) {
if (item.getItemId() == R.id.menuitem_id) {
}
return super.onMenuItemSelected(featureId, item);
}

选择后将调用此方法

答案 3 :(得分:-1)

在Manifest文件中,只需设置目标版本如下: android:minSdkVersion =“8”android:targetSdkVersion =“10”