Java 菜单显示,但未调用OnCreateOptions菜单()
菜单在应用程序的工具栏中可见,我可以打开它并查看菜单项,但是没有调用Java 菜单显示,但未调用OnCreateOptions菜单(),java,android,android-studio,menu,Java,Android,Android Studio,Menu,菜单在应用程序的工具栏中可见,我可以打开它并查看菜单项,但是没有调用onCreateOptionsMenu()函数,我通过设置断点和调试知道这一点,对于onOptionsItemSelected()函数也是如此,它根本没有被调用。我看过其他关于相同问题的堆栈溢出帖子,但我似乎没有犯过任何常见的错误。有人知道问题是什么以及如何解决吗 MainActivity.java @Override public boolean onCreateOptionsMenu(Menu menu) { Men
onCreateOptionsMenu()
函数,我通过设置断点和调试知道这一点,对于onOptionsItemSelected()
函数也是如此,它根本没有被调用。我看过其他关于相同问题的堆栈溢出帖子,但我似乎没有犯过任何常见的错误。有人知道问题是什么以及如何解决吗
MainActivity.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);
}
}
menu.xml
<?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>
如果删除此行,工具栏中的菜单将消失。不知道这是否有帮助或与我的问题有任何关系,但只是将其放在那里,让您知道。在oncreate函数中,放以下行:
setSupportActionBar(bottomAppBar)
有关更多详细信息,请参阅此代码:
使用
android.support.v7.widget.Toolbar
会起作用我得到一个错误:AppcompatActivity中的setSupportActionBar(androidx.appcompat.widget.Toolbar)不能应用于(android.widget.Toolbar)
,而这段代码可能会回答这个问题,提供关于如何和/或为什么解决问题的附加上下文将提高答案的长期价值。@AriCooper Davis同意,但由于我的问题尚未解决,它没有回答我的问题。更改了从android.widget.Toolbar导入的内容
到androidx.appcompat.widget.Toolbar代码>于是这个解决方案就起作用了。我得到了这个错误:AppcompatActivity中的setSupportActionBar(androidx.appcompat.widget.Toolbar)不能应用于(android.widget.Toolbar)
这个链接肯定会帮助你。但是我在我的应用程序中没有使用BottomAppBar
setSupportActionBar(bottomAppBar)
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
setSupportActionBar(toolBar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);