Mam przycisk flagi/zakładki na pasku akcji, który chcę włączać lub wyłączać w zależności od tego, który Fragment jest widoczny w ViewPager.android: Aktualizacja elementów ActionBar w zależności od każdego Fragmentu w ViewPager?
Jeśli użytkownik zaznaczy fragment w oknie ViewPager, zostanie włączony. Gdy użytkownik przeskoczy do następnego, chcę, aby przycisk paska akcji został zaktualizowany do niezatwierdzonej. Teraz jestem w stanie zmienić stan przycisku, mając dwa elementy menu i ukryć jeden, pokaz po kliknięciu.
Oto kod w mojej działalności, aby włączyć przycisk Akcja bar:
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);
}
Problem mam jest to, że nie mogę wejść do menu, zapisz & przywrócić stan przycisku, tj. jeśli jest oznaczony flagą lub nie z fragmentu lub FragmentPagerAdapter.
Jak mogę to zrobić? Na jakim poziomie powinienem uzyskać dostęp do paska akcji; Aktywność, PagerAdapter lub Fragmenty?
Czy możesz spróbować podsumować swoje pytanie? O ile zrozumiałem, jest to: "Jak moja aktywność może wiedzieć, który fragment jest aktualnie wyświetlany, aby odpowiednio zmienić mój ActionBar z działania", czy to prawda? – FWeigl
@Ascorbin Chodzi o to, jak zmieniać elementy na pasku akcji przez każdy fragment w ViewPager –