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);
}
我的片段中有 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);
}