user2691850
user2691850

Reputation: 43

how I get the current visible fragment from view pager Adapter..?

I have implemented these lines of code but it is not working .

pagerAdapter= new AbstractPagerAdapter(getSupportFragmentManager());

    mViewPager = (ViewPager)findViewById(R.id.pager);

    MyFragment frg  = (MyFragment)pagerAdapter.getItem(mViewPager.getCurrentItem());

public class AbstractPagerAdapter extends FragmentPagerAdapter  {

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

        @Override
        public Fragment getItem(int position) {

            return AbstractDetailFragment.newInstance(objlist.get(position),position == notePosition ? true : false);

        }

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

        @Override
        public CharSequence getPageTitle(int position) {

            return objlist.get(position).getTitle();
        }
    }

Upvotes: 1

Views: 1347

Answers (1)

Akbarsha
Akbarsha

Reputation: 2558

To get the currently visible fragment instance try the following

viewPager.setOnPageChangeListener(this);

and in the following method

@Override
public void onPageSelected(int position) {

    if (position == 0)
        setFragmentFor(0);
    if (position == 1)
        setFragmentFor(1);
            .
            .
            .
            // Upto how many fragments you've in your ViewPager
}

so in the setFragmentFor() method you should write your own logic to get the new Instance of Fragment depending upon the argument value passed over the setFragmentFor().

Upvotes: 1

Related Questions