![](/img/trans.png)
[英]onCreateOptionsMenu showing alwasy as action with a menu that i have created programatically
[英]Menu showing but onCreateOptionsMenu() not called
该菜单在应用程序的工具栏中可见,我可以打开它并查看菜单项,但是没有调用onCreateOptionsMenu()
函数,我通过设置断点和调试知道这一点, onOptionsItemSelected()
函数,它根本没有被调用。 我看过其他关于相同问题的堆栈溢出帖子,但我似乎没有犯任何常见的错误。 有谁知道问题是什么以及如何解决它?
主活动.java
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId())
{
case R.id.menuItem1:
Toast.makeText(this, "menuItem1 selected", Toast.LENGTH_SHORT).show();
return true;
case R.id.menuItem2:
Toast.makeText(this, "menuItem2 selected", Toast.LENGTH_SHORT).show();
return true;
case R.id.menuItem3:
Toast.makeText(this, "menuItem3 selected", Toast.LENGTH_SHORT).show();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
菜单文件
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menuItem1"
android:title="One"
app:showAsAction="never"/>
<item
android:id="@+id/menuItem2"
android:title="Two"
app:showAsAction="never"/>
<item
android:id="@+id/menuItem3"
android:title="Three"
app:showAsAction="never"/>
</menu>
编辑:在 MainActivity.java 的onCreate()
中,我有这行代码:
toolBar.inflateMenu(R.menu.menu);
如果我删除这一行,工具栏中的菜单就会消失。 不知道这是否对我的问题有帮助或有什么关系,但只是放在那里让你知道。
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
在 oncreate 函数中,放置这一行:
setSupportActionBar(bottomAppBar)
有关更多详细信息,请参阅此代码: https : //github.com/ranger163/BottomAppBarImplementation
setSupportActionBar(toolBar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
并使用android.support.v7.widget.Toolbar
会工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.