Cómo utilizar los elementos de la barra de herramientas con Viewpager + Fragmentos

Estoy tratando de averiguar cómo implementar elementos de la barra de acciones basados ​​en el fragmento que se está cargando dentro de mi viewpager. Mi código está abajo y estoy tratando de averiguar la mejor práctica para trabajar con ABS + ViewPager + Fragmentos.

Actividad principal

public class MainActivity extends SherlockFragmentActivity { private ViewPager mPager; private TitlePageIndicator mIndicator; private MainPagerAdapter mAdapter; private List<Fragment> mFragments; private static final String FRAGMENT1 = Fragment1.class.getName(); private static final String FRAGMENT2 = Fragment2.class.getName(); private static final String FRAGMENT3 = SupportFragment.class.getName(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.a_main); // add fragments mFragments = new ArrayList<Fragment>(); mFragments.add(Fragment.instantiate(this, FRAGMENT1)); mFragments.add(Fragment.instantiate(this, FRAGMENT2)); mFragments.add(Fragment.instantiate(this, FRAGMENT3)); // adapter mAdapter = new MainPagerAdapter(getSupportFragmentManager(), mFragments); // pager mPager = (ViewPager) findViewById(R.id.view_pager); mPager.setAdapter(mAdapter); // indicator mIndicator = (TitlePageIndicator) findViewById(R.id.title_indicator); mIndicator.setViewPager(mPager); } ... 

MainPagerAdapter

 public class MainPagerAdapter extends FragmentPagerAdapter { private List<Fragment> mFragments; private String[] titles = new String[] {"System", "Community", "Support"}; private int mCount = titles.length; public MainPagerAdapter(FragmentManager fm, List<Fragment> f) { super(fm); mFragments = f; } @Override public Fragment getItem(int position) { return mFragments.get(position); } @Override public int getCount() { return mCount; } @Override public CharSequence getPageTitle(int position) { return titles[position]; } 

Fragmento1

  public class Fragment1 extends SherlockFragment { WebView web; static ProgressBar progressBar; @Override public View onCreateView(LayoutInflater inf, ViewGroup grp, Bundle icicle) { View v = inf.inflate(R.layout.activity_main, grp, false); web = (WebView) v.findViewById(R.id.webView); progressBar = (ProgressBar) v.findViewById(R.id.progressBar1); return v; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); web.setWebViewClient(new SpecialWebView(progressBar)); web.setWebChromeClient(new SpecialWebChromeClient(progressBar)); // Progress Bar - End WebSettings websettings = web.getSettings(); websettings.setBuiltInZoomControls(false); web.setBackgroundColor(Color.parseColor("#f2f2f2")); websettings.setUseWideViewPort(true); websettings.setJavaScriptEnabled(true); websettings.setAllowFileAccess(true); websettings.setDomStorageEnabled(true); websettings.setLoadWithOverviewMode(true); websettings.setSavePassword(true); web.loadUrl("http://www.google.com"); } 

Dentro de mi MainActivity he intentado lo siguiente y no puedo obtener el código correcto.

 @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater Inflater = getSupportMenuInflater(); Inflater.inflate(R.menu.menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem Item) { final int current = ((ViewPager) mFragments).getCurrentItem(); String currentId = current == 0 ? FRAGMENT1: (current == 1 ? FRAGMENT2: FRAGMENT3); //WebView web = (WebView) findViewById(currentId); switch (Item.getItemId()) { case R.id.menu_back: // web.goBack(); return true; case R.id.menu_forward: //web.goForward(); return true; case R.id.menu_refresh: //web.reload(); return true; } return super.onOptionsItemSelected(Item); } 

Estoy tratando de averiguar cómo implementar elementos de la barra de acciones basados ​​en el fragmento que se está cargando dentro de mi viewpager.

Eso ocurre automáticamente. Sólo tiene los fragmentos llamada setHasOptionsMenu(true) , a continuación, implementar onCreateOptionsMenu() y onOptionsItemSelected() . El Fragment*PagerAdapter organizará la repoblación de la barra de acción después de un cambio de página, para eliminar elementos de la barra de acción de la página anterior e introducir elementos de la barra de acción de la página recién actual.

Aquí hay un ejemplo de proyecto que demuestra que los elementos de la barra de acción aparecen y desaparecen, ya que sólo las páginas de números impares (para los índices basados ​​en 1, lo que el usuario ve) tienen elementos de barras de acción.

  • Tamaño del icono de menú de Android
  • Cómo configurar el ID para los elementos del menú emergente, que se encuentra como id de la vista?
  • ANDROID: Habilitar y deshabilitar MenuItem en el esquema de la actividad del cajón de navegación
  • Vista personalizada para elemento de menú
  • Elemento de menú animado "salta" cuando se inicia la animación
  • Android: Cambiar la visibilidad de los elementos del menú con un fragmento cambiante
  • ¿Agregar MenuItem a NavigationView con el icono y el título?
  • Cómo poner superposición Ver sobre barra de acción Sherlock
  • ActionBarsherlock cómo establecer divisores en elementos de menú con sólo iconos
  • Cómo crear una instancia de menú mediante programación? Es decir, inflar un menú fuera onCreateOptionsMenu
  • ¿Cómo agregar un único elemento de menú a la barra de herramientas de android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.