Cómo mostrar 3 fragmentos dentro de PageViewer
Dentro de un fragmento, estoy tratando de crear un ViewPager con 3 fragmentos que puede pasar entre. Tengo problemas para entender la estructura y los errores que estoy consiguiendo ..
public class ContactFragment extends Fragment { FragmentPagerAdapter adapterViewPager; private FragmentActivity myContext; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.view_pager, container, false); ViewPager vpPager = (ViewPager) rootView.findViewById(R.id.vpPager); adapterViewPager = new MyPagerAdapter(myContext.getSupportFragmentManager()); vpPager.setAdapter(adapterViewPager); return rootView; } @Override public void onAttach(Activity activity) { myContext=(FragmentActivity) activity; super.onAttach(activity); } public static class MyPagerAdapter extends FragmentPagerAdapter { private static int NUM_ITEMS = 3; public MyPagerAdapter(FragmentManager fragmentManager) { super(fragmentManager); } // Returns total number of pages @Override public int getCount() { return NUM_ITEMS; } // Returns the fragment to display for that page @Override public Fragment getItem(int position) { switch (position) { case 0: // Fragment # 0 - This will show FirstFragment return FirstFragment.newInstance(0, "Page # 1"); case 1: // Fragment # 0 - This will show FirstFragment different title return FirstFragment.newInstance(1, "Page # 2"); default: return null; } } // Returns the page title for the top indicator @Override public CharSequence getPageTitle(int position) { return "Page " + position; } } }
Mi layout de ViewPager xml tiene este aspecto:
- ¿Cómo convertir una matriz json en un objeto json en android usando gson?
- Recorte de visualización de Android
- ¿Puedo probar las notificaciones de la barra de estado utilizando el marco de pruebas de Android?
- Vinculación de datos de Android mediante etiqueta de inclusión
- VerifyError con PowerMock en Android
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.v4.view.ViewPager android:id="@+id/vpPager" android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.v4.view.PagerTabStrip android:id="@+id/pager_header" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="top" android:paddingBottom="4dp" android:paddingTop="4dp" /> </android.support.v4.view.ViewPager> </LinearLayout>
Este es mi texto Fragmento clase I instanciar 3 fragmentos de:
public class FirstFragment extends Fragment { // Store instance variables private String title; private int page; // newInstance constructor for creating fragment with arguments public static FirstFragment newInstance(int page, String title) { FirstFragment fragmentFirst = new FirstFragment(); Bundle args = new Bundle(); args.putInt("someInt", page); args.putString("someTitle", title); fragmentFirst.setArguments(args); return fragmentFirst; } // Store instance variables based on arguments passed @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); page = getArguments().getInt("someInt", 0); title = getArguments().getString("someTitle"); } // Inflate the view for the fragment based on layout XML @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_layout, container, false); TextView tvLabel = (TextView) view.findViewById(R.id.tvLabel); tvLabel.setText(page + " -- " + title); return view; } }
Cuando ejecuto la aplicación y cargar el fragmento se ve bien, pero cuando intento deslizar a un nuevo fragmento en el visor de páginas se bloquea:
E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: org.example.magnusluca.drawertestapp, PID: 3624 java.lang.NullPointerException: Attempt to write to field 'android.support.v4.app.FragmentManagerImpl android.support.v4.app.Fragment.mFragmentManager' on a null object reference
- R no se puede resolver con una variable: ejemplo de Chromecast
- El anuncio de Admob no cambia de tamaño correctamente en la orientación de la pantalla
- Establecer edittext utilizando sólo ", 0123456789" mediante programación en Android?
- ¿Cuál es el archivo html más grande que se puede cargar en un WebView de Android?
- Limitar los lugares decimales en Android EditText
- Tipo de letra personalizado en el título de la pestaña de ActionBar
- ¿Cómo repetir textview?
- IntelliJ IDEA Buildtools 24.0.2 requiere Java 1.8 o superior. La versión actual de JDK es 1.7
Utilizar esta
@Override public Fragment getItem(int position) { switch (position) { case 0: // Fragment # 0 - This will show FirstFragment return FirstFragment.newInstance(0, "Page # 1"); case 1: // Fragment # 0 - This will show FirstFragment different title return FirstFragment.newInstance(1, "Page # 2"); case 2: return FirstFragment.newInstance(2, "Page # 3"); default: return new Fragment(); } }
Debe tener 3 casos de conmutación y también su caso predeterminado no debe devolver null
- El botón de radio creado dinámicamente o CheckBox no utiliza el acento de color
- Cambiar HTML en un WebView mediante programación