Java 未调用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

在片段中不会调用OnCreateOptions菜单。我必须手动调用
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菜单(菜单:菜单?):布尔值不存在。