3

I have implemented the ViewPagerIndicator with ActionBarSherlock.

Now i would like to open a specific fragment inside the viewpager once the viewpager is created. Normally you should use setCurrentItem(pageid) or setViewPager(mPager, pageid);

But this doesn't work :( If I would like to open fragment 2 inside the viewpager, the viewpager indicator shows that fragment 2 is shown, but in reality fragment one (standard) is shown in the viewpager.

I have the following code:

 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.simple_tabs);

        mAdapter = new ColofonFragmentAdapter(getSupportFragmentManager());

        mPager = (ViewPager)findViewById(R.id.pager);
        mPager.setAdapter(mAdapter);
        mIndicator = (TabPageIndicator)findViewById(R.id.indicator);
        String page = "";
        page = getIntent().getStringExtra("page");
        int pageid = 0;
        if(page.equals("contact")) { pageid = 0; }
        else if(page.equals("colofon")) { pageid = 1; }
        else if(page.equals("disclaimer")) { pageid = 2; }      

        mIndicator.setViewPager(mPager, pageid); // Doesn't work...
            //mIndicator.setCurrentItem(pageid); // Doesn't work...
    }

class ColofonFragmentAdapter extends FragmentPagerAdapter implements TitleProvider {

        ArrayList<Fragment> fragments = new ArrayList<Fragment>();
        ArrayList<String> titels = new ArrayList<String>();

        public ColofonFragmentAdapter(FragmentManager fm) {
            super(fm);
            fragments.add(new LayoutFragment(R.layout.colofon_contactgegevens));
            titels.add("Contact");
            fragments.add(new LayoutFragment(R.layout.colofon_colofon));
            titels.add("Colofon");
            fragments.add(new LayoutFragment(R.layout.colofon_disclaimer));
            titels.add("Disclaimer");
        }


        @Override
        public Fragment getItem(int position) {
            return fragments.get(position);
        }

        @Override
        public int getCount() {
            return fragments.size();
        }

        @Override
        public String getTitle(int position) {
            return titels.get(position);
        }
    }

Can you tell me which method I should use to change the initial page? Thank you!

user1255553
  • 960
  • 2
  • 15
  • 27
  • SOLVED! You have to set the indicator (as i did) AND the viewpager by mPager.setCurrentItem(pageid); mIndicator.setViewPager(mPager); – user1255553 Mar 21 '12 at 12:32
  • Hello I have one issue that i have take Gallery and i want to show different every page in pageviewer on Gallery's Image click event. – Parag Chauhan Apr 01 '12 at 05:50

1 Answers1

0

I think it was a bug caused by setCurrentItem() https://github.com/JakeWharton/Android-ViewPagerIndicator/pull/76

It's solved ^^

cesards
  • 15,882
  • 11
  • 70
  • 65