首页 > 解决方案 > 未调用 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)
}

标签: javaandroidandroid-studiokotlinoptionmenu

解决方案


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);

推荐阅读