zwischen Fragmenten über Button wechseln

  • Antworten:6
  • OffenNicht stickyBentwortet
  • Forum-Beiträge: 23

17.09.2014, 15:16:27 via Website

Aloha Community,

ich hab da mal wieder ein Problem:

Zur Darstellung in meiner App verwende ich einen FragmentManager. Dieser erhält meine 4 Fragmente.

so, wie es jetzt ist, kann ich zwischen den Fragmenten nur via swipen wechseln. was ich möchte, sind am Fuße jedes Fragments 4 Buttons, über welche ich zu den einzelnen Fragmenten wechseln kann.

habe da schon mit FragmentTransaction - replace probiert, jedoch funktioniert das irgendwie nicht.

mein Adapter hierzu:

public class SectionsPagerAdapter extends FragmentPagerAdapter {

    public SectionsPagerAdapter(FragmentManager fm) {

        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        // getItem is called to instantiate the fragment for the given page.
        // Return a DummySectionFragment (defined as a static inner class
        // below) with the page number as its lone argument.
        Fragment ChecklistFragment;
        if (position == 0) {
            ChecklistFragment = new Fragment1();
        } else if (position == 1) {
            ChecklistFragment = new Fragment2();
        } else if (position == 2) {
            ChecklistFragment = new Fragment3();
        } else {
            ChecklistFragment = new Fragment4t();
        }

        return ChecklistFragment;
    }

    /**
     * Gibt die Anzahl der Seiten zurück
     */
    @Override
    public int getCount() {
        // Show 4 total pages.
        return 4;
    }

    /**
     * 
     * Gibt die Seitentitel zurück
     */
    @Override
    public CharSequence getPageTitle(int position) {
        Locale l = Locale.getDefault();
        switch (position) {
        case 0:
            return ("Bezeichnung1").toUpperCase(l);
        case 1:
            return ("Bezeichnung2").toUpperCase(l);
        case 2:
            return ("Bezeichnung3").toUpperCase(l);
        case 3:
            return ("Bezeichnung4").toUpperCase(l);
        }
        return null;
    }
}

Kann mir da jemand weiterhelfen? die Doku zum FragmentPagerAdapter angeschaut, aber so recht half mir das nicht.

Grüße!

Antworten
  • Forum-Beiträge: 11.132

17.09.2014, 15:24:09 via Website

Wieso willst du das mit Buttons lösen, der Switpe ist langsam Standart als Navigations Element, was stört dich daran?
Wieso brauchst du die Buttons denn dann, welchen Vorteil bringt das dir?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 23

17.09.2014, 15:34:02 via Website

Die Anforderung ist, dass man auch über Buttons zwischen den Fragmenten wechseln kann. Ich würde es sonst auch nicht verwenden ;)

Antworten
  • Forum-Beiträge: 11.132

17.09.2014, 15:44:49 via Website

Ist aber für User total unhandlich.. aber wenn du meinst.
Tipp: Könntest das mit den Buttons den user über Einstellungen entscheiden lassen und ggf. die Buttons ausblenden.

Das hier sollte helfen:

// Create new fragment and transaction
Fragment newFragment = new ExampleFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();

// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);

// Commit the transaction
transaction.commit();

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 23

17.09.2014, 16:07:25 via Website

genau das hatte ich schon ausprobiert, was mir damit aber passiert, ist, dass ich auf dem gleichen Fragment bleibe, und ein anderes Ersetzt wird. ich möchte ja gar nix ersetzen, sondern nur zu einer anderen Ansicht wechseln ;)

Antworten
  • Forum-Beiträge: 23

17.09.2014, 16:20:02 via Website

super! setCurrentItem() ist genau das, was ich brauchte!

Dankeschön!

Antworten
Empfohlene Artikel