Sie können ViewPager
nicht verwenden, um zwischen Activities
zu wischen. Sie müssen jeden von Ihnen fünf Activities
in Fragments
umwandeln, dann kombinieren Sie alles in einem FragmentActivity
mit dem Adapter
, den Sie mit ViewPager
verwenden.
Here's a link das geht ins Detail bei der Umwandlung Ihrer aktuellen Activities
info Fragments
.
Dies ist die Fragment topic auf der Android-Entwickler-Website, es hat eine Menge nützlicher Informationen.
Here's another example (vollständige Quelle), die TextViews
auf jeder Seite aufbläht.
Hier ist ein Beispiel, das ich oben getippt:
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);
}
}
Das in onCreate
Ihrer FragmentActivity
aufgerufen werden soll:
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);
}
Dies ist ein Beispiel für das Layout y ou'd für Ihre FragmnetActivity
verwenden:
<?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>
eine neue Klasse erstellen Fragment
erstellen, die Fragment
erstreckt. Die ersten beiden Methoden, die Sie wünschen, sind override
onActivityCreated
und onCreateView
.
Hier ist, wie Sie das tun könnte:
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;
}
}
Ich kann Ihnen nicht mit Aktivitäten auf einem Beispiel zeigen. Ich kann ein Codebeispiel für eine Anwendung bereitstellen, die Tabs und Fragmente von Compatibility Pack-Aktionsleisten mit einem ViewPager verwendet, wenn Sie möchten. Grundsätzlich ist jede Registerkarte ein Fragment, das in einer Hauptaktivität gehostet wird (meine App entwickelt jedoch ständig andere Aktivitäten für andere Aufgaben). Aber Sie müssten bereit sein, Fragmente zu verwenden, keine Aktivitäten. Interessiert? – Davek804