Java 未调用OnCreateOptions菜单
在片段中不会调用OnCreateOptions菜单。我必须手动调用Java 未调用OnCreateOptions菜单,java,android,android-studio,kotlin,optionmenu,Java,Android,Android Studio,Kotlin,Optionmenu,在片段中不会调用OnCreateOptions菜单。我必须手动调用onCreatedView()中的设置选项菜单(true),但这会导致项.itemId在onoptionItemSelected()中为空字符串”,因此我无法检测到点击了哪个菜单项 我现在在一个片段中使用这个: override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { super.onCreateOptionsMenu(menu, infl
onCreatedView()
中的设置选项菜单(true)
,但这会导致项.itemId
在onoptionItemSelected()
中为空字符串”
,因此我无法检测到点击了哪个菜单项
我现在在一个片段中使用这个:
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
super.onCreateOptionsMenu(menu, inflater)
inflater.inflate(R.menu.menu_font_share, menu)
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.menu_font_size_Btn -> {
}
R.id.menu_share_Btn -> {
super.showShareSheet()
}
}
return super.onOptionsItemSelected(item)
}
在菜单充气后,调用super.onCreateOptions菜单(菜单,充气机)
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.menu_font_share, menu)
super.onCreateOptionsMenu(menu,inflater)
}
这可能更有帮助
参考号::
试试这个
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_sample, menu);
super.onCreateOptionsMenu(menu,inflater);
}
在
onCreate
中添加此行,使选项显示在工具栏中
setHasOptionsMenu(true);
在菜单充气后,调用super.onCreateOptions菜单(菜单,充气机)
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.menu_font_share, menu)
super.onCreateOptionsMenu(menu,inflater)
}
这可能更有帮助
参考号::
试试这个
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_sample, menu);
super.onCreateOptionsMenu(menu,inflater);
}
在
onCreate
中添加此行,使选项显示在工具栏中
setHasOptionsMenu(true);
要使
oncreateoptions菜单
在片段内部工作,可以执行以下步骤:
确保将工具栏设置为ActionBar(如果使用):
styles.xml
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
...
</style>
没有这一行,onOptionsItemSelected
事件将不会在片段中运行。这会将所有ActionBar回调分配给工具栏
在片段onViewCreated
或onCreateView
中:
setHasOptionsMenu(true)
并重写此方法:
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.id) {
R.id.item_01 -> {}
R.id.item_02 -> {}
...
}
super.onCreateOptionsMenu(menu, inflater)
}
如果您正在使用Android导航组件,请在活动中添加此项:
setupActionBarWithNavController(navController)
要使
oncreateoptions菜单
在片段内部工作,可以执行以下步骤:
确保将工具栏设置为ActionBar(如果使用):
styles.xml
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
...
</style>
没有这一行,onOptionsItemSelected
事件将不会在片段中运行。这会将所有ActionBar回调分配给工具栏
在片段onViewCreated
或onCreateView
中:
setHasOptionsMenu(true)
并重写此方法:
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.id) {
R.id.item_01 -> {}
R.id.item_02 -> {}
...
}
super.onCreateOptionsMenu(menu, inflater)
}
如果您正在使用Android导航组件,请在活动中添加此项:
setupActionBarWithNavController(navController)
@达瓦沙不,我已经试过了。再次阅读问题您必须设置操作栏:
SethasOptions菜单(true);((AppCompatActivity)getActivity()).setSupportActionBar(工具栏)代码>@DhavalShah不,我已经试过了。再次阅读问题您必须设置操作栏:SethasOptions菜单(true);((AppCompatActivity)getActivity()).setSupportActionBar(工具栏)代码>onCreateOptions菜单(菜单:菜单?):布尔值不存在。onCreateOptions菜单(菜单:菜单?):布尔值不存在。