viewpager usar studio sirven que para los fragments fragmentos example entre ejemplos ejemplo con comunicacion como android android-actionbar android-viewpager

usar - Android: ¿Actualizar los elementos de la barra de acción en función de cada fragmento en un ViewPager?



viewpager android example (1)

El registro de un ViewPager.OnPageChangeListener en su ViewPager debería hacer el truco. Luego, anule onPageSelected(int pageNum) para recibir devoluciones de llamada cuando cambie una página.

public void onPageSelected(int pageNum) { supportInvalidateOptionsMenu(); }

Tengo un botón de marca / marcador en la barra de acción que quiero activar o desactivar según qué Fragmento esté a la vista del ViewPager.

Si el usuario marca un fragmento en el ViewPager, se configurará como habilitado. Cuando el usuario pase a la siguiente, quiero que el botón de la barra de acción se actualice a sin marcar. Ahora, puedo cambiar el estado del botón al tener dos elementos de menú y ocultar uno, mostrar uno al hacer clic.

Aquí está el código en mi actividad para alternar el botón de la barra de acción:

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); }

El problema que tengo es que no puedo acceder al elemento del menú, guardar y restaurar el estado del botón, es decir, si está marcado o no desde el fragmento o el FragmentPagerAdapter.

¿Cómo puedo hacer esto? En qué nivel debería estar accediendo a la barra de acción; Actividad, PagerAdapter o los fragmentos?