我在操作栏中有一个标志/书签按钮,我希望根据 ViewPager 视图中的 Fragment 打开或关闭它。
如果用户在 ViewPager 中标记了一个片段,它将被设置为启用。当用户滑动到下一个时,我希望操作栏按钮更新为未标记。现在,我可以通过拥有两个菜单项并隐藏一个,单击时显示一个来更改按钮的状态。
这是我的 Activity 中用于切换操作栏按钮的代码:
public boolean onOptionsItemSelected(MenuItem item) {
int currentItem = mPager.getCurrentItem();
switch (item.getItemId()) {
case R.id.menu_flag:
mFlagged = true;
supportInvalidateOptionsMenu();
return true;
case R.id.menu_unflag:
mFlagged = false;
supportInvalidateOptionsMenu();
return true;
}
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuItem item_flag = menu.findItem(R.id.menu_flag);
MenuItem item_unflag = menu.findItem(R.id.menu_unflag);
if (mFlagged) {
//If flagged
//Show flagged item
item_flag.setVisible(false).setEnabled(false);
item_unflag.setVisible(true).setEnabled(true);
item_flag.isVisible();
} else {
//If not flagged
//Show unflagged icon
item_flag.setVisible(true).setEnabled(true);
item_unflag.setVisible(false).setEnabled(false);
}
return super.onPrepareOptionsMenu(menu);
}
我遇到的问题是我无法访问菜单项、保存和恢复按钮的状态,即是否从片段或 FragmentPagerAdapter 标记了它。
我怎样才能做到这一点?我应该在哪个级别访问操作栏;Activity、PagerAdapter 还是 Fragments?