java - 未调用 onCreateOptionsMenu
问题描述
onCreateOptionsMenu 不会在片段中被调用。我必须手动调用setHasOptionsMenu(true)
,onCreatedView()
但这会导致其中的字符串为item.itemId
空,因此我无法检测到哪个菜单项被点击。""
onOptionsItemSelected()
我目前在片段中使用它:
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.onCreateOptionsMenu(menu,inflater)
菜单膨胀后调用
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.menu_font_share, menu)
super.onCreateOptionsMenu(menu,inflater)
}
这可能更有帮助 Ref :: https://stackoverflow.com/a/15654039/11393354
尝试这个,
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_sample, menu);
super.onCreateOptionsMenu(menu,inflater);
}
并onCreate
添加此行以使选项出现在您的Toolbar
setHasOptionsMenu(true);
推荐阅读
- cypress - 无法与赛普拉斯中的 iframe 交互
- c++ - 在 C++ 中将函数返回类型指定为模板参数
- python - 为什么我从在线课程中复制的这段代码不起作用?
- .net - Dataproc 不会解压缩作为存档传递的文件
- reactjs - 如何使用 Jest 通过 Axios (async/await) 和 Redux Thunk 测试异步 Redux Action Creators?
- sql - 在 MATCHED 上插入雪花或在 NOT MATCHED 上更新
- html - CSS 悬停样式在悬停选择器附加到父容器之前不起作用
- .net - NuGet 使用 ApiKey 获取包版本
- user-interface - 如何编写 Reminders.app 的排序脚本?
- java - 策略模式和上下文类