アクションバーにフラグ/ブックマークボタンがあります。このフラグは、ViewPagerのビューにあるフラグメントに応じてオン/オフを切り替えることができます。アンドロイド:ViewPagerの各フラグメントに応じてActionBarアイテムを更新しますか?
ユーザーがViewPagerでフラグメントにフラグを付けると、有効に設定されます。ユーザーが次のスワイプにスワイプすると、アクションバーのボタンを更新してフラグを付けないようにします。今、ボタンの状態を2つのメニュー項目を持つことで変更でき、クリックすると1つを表示することができます。ここで
は、アクションバーのボタンを切り替えるには、私の活動のコードです:
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からフラグが立てられているかどうかを判定します。
どうすればいいですか?アクションバーにアクセスするレベルはどれですか。アクティビティ、ページャアダプタ、またはフラグメント?
あなたの質問を要約できますか?私が理解しているところでは、「どのアクティビティで現在表示されているフラグメントがわかるので、それに応じてアクティビティからActionBarを変更することができますか? – FWeigl
@Ascorbinそれは、ViewPagerの各フラグメントによってアクションバーのアイテムを変更する方法です。 –