ActionBar Badge returns optionitemselected 点击 Activity 而不是我的 Fragment

ActionBar Badge returns optionitemselected click to Activity instead of my Fragment

我的片段中有 onOptionsItemSelected(MenuItem item)。现在我不得不使用 Android-ActionItemBadge 库 (https://github.com/mikepenz/Android-ActionItemBadge),来添加 ActionBar 通知计数。 所以我在我的片段中添加了这段代码。

public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
            //Inflating the Menu
                inflater.inflate(R.menu.refresh_menu, menu);

        //inflating Notification Icon
        if (badgeCount > 0) {
            ActionItemBadge.update(getActivity(), menu.findItem(R.id.badge),
                    FontAwesome.Icon.faw_android, ActionItemBadge.BadgeStyle.DARKGREY, badgeCount);
        } else {
            ActionItemBadge.hide(menu.findItem(R.id.badge));
        }
}

但是这个 Optionsitems 选择了 return 我 Activity 的价值,但没有进入我的片段。任何想法?我想在我的 Fragment 中处理这个 Optionsitemselected。

在您的片段中您需要调用:

setHasOptionsMenu(true);

编辑:

因为这个 custom ActionBar 项目没有提供对你的片段的调用,你可以简单地手动完成:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.action_search: // Your item id
            Fragment f = getFragmentManager().findFragmentById(R.id.fragment_container);
            f.onOptionsItemSelected(item);
            break;
        default:
            break;
    }
    return super.onOptionsItemSelected(item);
}