Non è possibile utilizzare ViewPager
per scorrere tra Activities
. È necessario convertire ognuno di voi cinque Activities
in Fragments
, quindi combinare tutto in uno FragmentActivity
con lo Adapter
utilizzato con ViewPager
.
Here's a link che entra in dettaglio sulla conversione delle informazioni correnti Fragments
.
Questo è il numero Fragment topic sul sito Web degli sviluppatori Android, contiene molte informazioni utili.
Here's another example (sorgente completo) che si gonfia TextViews
in ogni pagina.
Ecco un esempio che ho digitato su:
PagerAdapter:
public class PagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragments = new ArrayList<Fragment>();
public PagerAdapter(FragmentManager manager) {
super(manager);
}
public void addFragment(Fragment fragment) {
mFragments.add(fragment);
notifyDataSetChanged();
}
@Override
public int getCount() {
return mFragments.size();
}
@Override
public Fragment getItem(int position) {
return mFragments.get(position);
}
}
Questo dovrebbe essere chiamato in onCreate
della vostra FragmentActivity
:
private void initPaging() {
FragmentOne fragmentOne = new FragmentOne();
FragmentTwo fragmentTwo= new FragmentTwo();
PagerAdapter pagerAdapter = new PagerAdapter(getSupportFragmentManager());
pagerAdapter.addFragment(fragmentOne);
pagerAdapter.addFragment(fragmentTwo);
ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager);
viewPager.setAdapter(pagerAdapter);
}
Questo è un esempio del layout y ou'd usare per il vostro FragmnetActivity
:
<?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/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
Per creare Fragment
creare una nuova classe che estende Fragment
. I primi due metodi che vorrete digitare override
sono onActivityCreated
e onCreateView
.
Ecco come si potrebbe fare che:
public class FragmentOne extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(THE_LAYOUT_FROM_YOUR_ORIGINAL_ACTIVITY, container, false);
return view;
}
}
Non si può puntare verso un esempio con le attività. Posso fornire un esempio di codice di un'applicazione che utilizza le schede e i frammenti della barra delle azioni di Compatibility Pack con un ViewPager, se lo desideri. Fondamentalmente, ogni scheda è un frammento, ospitato in un'attività principale (la mia app sta crescendo costantemente altre attività per altri compiti, però). Ma dovresti essere disposto a usare frammenti, non attività. Interessato? – Davek804