Ändern Sie das Viewpager-Fragment mit einem buttonClick

Ich versuche, das Viewpager-Fragment durch Klicken auf eine Schaltfläche zu ändern. Ich habe 5 Fragmente, jedes Fragment hat eine eigene XML-Datei (frag1.xml, frag2.xml usw.). Jedes Fragment hat 5 Schaltflächen, die zu anderen Seiten des Viewpagers gehen sollen. Das Problem ist jedoch, wie ich im FragmentPageAdapter überprüfe, auf welche Schaltfläche geklickt wird und wie ich dorthin komme.

Ich werde den Code zeigen, den ich habe, dann sollte klar sein, denke ich. Stellen Sie es sich wie einen Homescreen vor, der unten Punkte aufweist. Wenn Sie auf einen bestimmten Punkt klicken, gelangen Sie zum entsprechenden Bildschirm.

FragmentPagerAdapter

public class MyFragmentPagerAdapter extends FragmentPagerAdapter{

    final int PAGE_COUNT = 6;

    /** Constructor of the class */
    public MyFragmentPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    /** This method will be invoked when a page is requested to create */
    @Override
    public Fragment getItem(int arg0) {

        switch(arg0){

        case 0:

            return new Fragment1();

        case 1:
            return new Fragment2();

        case 2:
            return new Fragment3();

        case 3:
            return new Fragment4();

        case 4:
            return new Fragment5();

        default:
            return null;

        }       
    }

    /** Returns the number of pages */
    @Override
    public int getCount() {
        return PAGE_COUNT;
    }
}

Frag1.java

public class Frag1 extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.frag_one, container, false);


        OnClickListener changeFrag = new OnClickListener() {            
            @Override
            public void onClick(View v) {
            /*When I click this button in my fragment, I'd like it to go to fragment 3 for example*/
            }
        };

        ImageButton btnT = (ImageButton) v.findViewById(R.id.frag3);
        btnT.setOnClickListener(changeFrag);

        return v;
    }
}

Hauptaktivität

public class MainActivity erweitert FragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);/** Getting a reference to the ViewPager defined the layout file */
        ViewPager pager = (ViewPager) findViewById(R.id.pager);

        /** Getting fragment manager */
        FragmentManager fm = getSupportFragmentManager();

        /** Instantiating FragmentPagerAdapter */
        MyFragmentPagerAdapter pagerAdapter = new MyFragmentPagerAdapter(fm);

        /** Setting the pagerAdapter to the pager object */
        pager.setAdapter(pagerAdapter);

       //pager.setPageTransformer(true, new ZoomOutPageTransformer());
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}

Ist so etwas möglich? Kann mir bitte jemand in die richtige Richtung helfen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage