我遇到的问题是,当我点击菜单按钮时,我的应用程序没有显示选项菜单。调试显示在按下菜单按钮后未调用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实际上从未被调用过。不是在应用程序的开头,而是在我点击设备上的菜单按钮时。
答案 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”