Question

I already have the two buttons "left" and "right" in my xml-pager file.. I want to set them: when i click on "left" button the page swipe automaticlly to left and when i click on "right" button it goes automatically to right.. can someone give me the code to put in my activity file? thank you!

Was it helpful?

Solution

To go the next/previous page use something like the following:

private void nextPage() {
    int currentPage = viewPager.getCurrent();
    int totalPages = viewPager.getAdapter().getCount();

    int nextPage = currentPage+1;
    if (nextPage >= totalPages) {
        // We can't go forward anymore.
        // Loop to the first page. If you don't want looping just
        // return here.
        nextPage = 0;
    }

    viewPager.setCurrentItem(nextPage, true);
}

private void previousPage() {
    int currentPage = viewPager.getCurrent();
    int totalPages = viewPager.getAdapter().getCount();

    int previousPage = currentPage-1;
    if (previousPage < 0) {
        // We can't go back anymore.
        // Loop to the last page. If you don't want looping just
        // return here.
        previousPage = totalPages - 1;
    }

    viewPager.setCurrentItem(previousPage, true);
}

OTHER TIPS

For android.support.v4, you can use the following:

ViewPager pager;
pager = (ViewPager) findViewById(R.id.viewPager);       
pager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));

Have a veiwpager adapter class like this:

private class MyPagerAdapter extends FragmentPagerAdapter {

    public MyPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int pos) {

        switch(pos)
        {
            case 0: return WelcomeFrag1.newInstance("Page 1");
            case 1: return WelcomeFrag2.newInstance("Page 2");
            case 2: return WelcomeFrag3.newInstance("Page 3");
            case 3: return WelcomeFrag4.newInstance("Page 4");
            case 4: return WelcomeFrag5.newInstance("Page 5");
            default: return WelcomeFrag1.newInstance("Page 1");
        }           
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return 5;
    }       
}

And finally have two methods nextPage() and previousPage() like this:

private void nextPage() {
    int currentPage = pager.getCurrentItem();
    int totalPages = pager.getAdapter().getCount();

    int nextPage = currentPage+1;
    if (nextPage >= totalPages) {
        // We can't go forward anymore.
        // Loop to the first page. If you don't want looping just
        // return here.
        nextPage = 0;
    }

    pager.setCurrentItem(nextPage, true);
}

private void previousPage() {
    int currentPage = pager.getCurrentItem();
    int totalPages = pager.getAdapter().getCount();

    int previousPage = currentPage-1;
    if (previousPage < 0) {
        // We can't go back anymore.
        // Loop to the last page. If you don't want looping just
        // return here.
        previousPage = totalPages - 1;
    }

    pager.setCurrentItem(previousPage, true);
}

Take note: I am using getCurrentItem() to get the index of the current page

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top