我遇到的问题是,当我点击菜单按钮时,我的应用程序不显示选项菜单。调试显示点击菜单按钮后不会调用 onCreateOptionsMenu(Menu menu) 方法。我有另一个应用程序,其菜单代码相同,并且可以正常工作。现在我的代码:
@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);
}
}
在资源 -> 菜单 -> 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 实际上从未被调用。不是在应用程序启动时,也不是在我点击设备上的菜单按钮时。
最佳答案
从您的帖子中不确定您正在使用 Fragments。如果是这样,您必须通过
设置菜单选项setHasOptionMenu(true);
从 Fragment 的 onCreate() 调用此方法,然后将显示选项菜单。
关于点击菜单按钮时 Android onCreateOptionsMenu 不会被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19242650/