Nella barra delle azioni è presente un pulsante flag/segnalibro che si desidera attivare o disattivare a seconda del frammento in vista di ViewPager.android: aggiorna le voci di ActionBar in base a ciascun frammento in un ViewPager?
Se l'utente segnala un frammento nel ViewPager, verrà impostato su abilitato. Quando l'utente passa alla successiva, voglio che il pulsante della barra delle azioni si aggiorni in modo che non sia stato rimosso. Ora, sono in grado di cambiare lo stato del pulsante con due voci di menu e nasconderne uno, mostrarne uno quando si fa clic.
Ecco il codice nella mia attività per spostare il pulsante Azione 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);
}
Il problema che sto avendo è che non posso accedere alla voce di menu, salvare & ripristinare lo stato del pulsante, vale a dire se è contrassegnato o meno dal frammento o dal FragmentPagerAdapter.
Come posso fare questo? A quale livello dovrei accedere alla barra delle azioni? Attività, PagerAdapter o Frammenti?
Puoi provare a riassumere la tua domanda? Per quanto ho capito, è: "Come può la mia attività sapere quale frammento è attualmente visualizzato, così posso modificare di conseguenza la mia ActionBar dall'attività", giusto? – FWeigl
@Ascorbin Si tratta di come modificare gli elementi sulla barra delle azioni da ciascun frammento in un ViewPager –