android:onoptionsitemselected未调用

z2acfund  于 2021-06-26  发布在  Java
关注(0)|答案(0)|浏览(166)

我正在编写一个由另一家公司预先编写的代码。现在我想在操作栏的左上角添加一个汉堡包菜单图标。我的做法是:

@Override
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
    super.onCreateOptionsMenu(menu, inflater);
    if(!(getActivity() instanceof AppCompatActivity))
        return;
    AppCompatActivity appCompatActivity = (AppCompatActivity) getActivity();
    appCompatActivity.getSupportActionBar().setHomeButtonEnabled(true);
    Drawable hamburger = getResources().getDrawable(R.drawable.mc_tab_icon_sections);
    hamburger.setColorFilter(getResources().getColor(R.color.black), PorterDuff.Mode.SRC_ATOP);
    appCompatActivity.getSupportActionBar().setHomeAsUpIndicator(hamburger);// set drawable icon

    appCompatActivity.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}

在我的片段中,这非常好。
但现在当用户点击这个图标时,我就是这样处理的:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            showSectionsMenu();
            return true;
    }
    return super.onOptionsItemSelected(item);
}

在活动中创建操作栏的方式是:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.mc_main, menu);
    if (menu != null) {
        search = menu.findItem(R.id.action_search);
        SearchView searchView = (SearchView) search.getActionView();
        toolbarStateModel.setSearchView(searchView);
        search.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                return false;
            }
        });

        settingsActionItem = menu.findItem(R.id.action_settings);
        settingsActionItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                controller.getNavigation().openSettings(BaseMainActivity.this);
                return false;
            }
        });
    }

    return true;
}

但是现在当我点击汉堡包菜单图标,而不是叫“onoptionsitemselected”。它只是关闭应用程序,而应用程序中的任何地方都不会调用“onoptionsitemselected”。
任何帮助都将不胜感激。短暂性脑缺血发作

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题