我在操作欄中有一個標記/書籤按鈕,我希望根據哪個片段在ViewPager的視圖中進行切換。android:根據ViewPager中的每個片段更新ActionBar項目?
如果用戶在ViewPager中標記了一個片段,它將被設置爲啓用。當用戶滑動到下一個時,我希望操作欄按鈕更新爲無標記。現在,我可以通過兩個菜單項並隱藏一個按鈕來改變按鈕的狀態,點擊時顯示一個。
這裏是在我的活動代碼切換操作欄按鈕:
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中被標記的。
我該怎麼做?我應該訪問哪個級別的Action Bar;活動,PagerAdapter或碎片?
你可以試着總結一下你的問題嗎?據我瞭解,它是:「我的活動如何知道當前顯示哪個片段,因此我可以根據活動相應地更改我的ActionBar」,是嗎? – FWeigl 2013-02-27 15:25:34
@Ascorbin這是關於如何通過ViewPager中的每個片段更改操作欄上的項目 – 2013-02-27 16:36:11