Search code examples
androidandroid-fragmentsandroid-viewpagerlayout-inflaterfragmentmanager

Android Viewpager how can learn ViewPager.getCurrentItem from fragment


enter image description here

Well I'm using viewpager. I am creating views with this:

public class CrimePagerActivity extends FragmentActivity {

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    FragmentManager fm = getSupportFragmentManager();
            mViewPager.setAdapter(new FragmentStatePagerAdapter(fm) {

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

                @Override
                public Fragment getItem(int sorusirasi) {

                    return fragment.newInstance(sorusirasi);
                }
            });

I want to know which view is shown. Normally I can call ViewPager.getCurrentItem() in a FragmentActivity but in a Fragment how can I learn which view is currentitem.


Solution

  • In my case ,I have viewpager in fragmentactivity and add child fragment in view pager,and get the position of viewpager in child fragment like this:

    In adapter's getItem:

       @Override
            public Fragment getItem(int position) {
                Log.d("Click>>",">>"+position+" >>> "+position);
               return OfferSingleFragment.newInstance(position);
            }  
    

    And In OfferSingleFragment:

    public static OfferSingleFragment newInstance(String string) {
        OfferSingleFragment f =  new OfferSingleFragment();
           Bundle args = new Bundle();
            args.putString("pos",string);
            f.setArguments(args);
        return f;
    }
    

    And In OnCreateView:

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        View v = inflater.inflate(R.layout.single_layout,container,false);
        View txt = v.findViewById(R.id.txt_title_singlelayout);
    
          String t = getArguments().getString("pos") ;
             Log.d("OnCreateView",">>"+t);
             ((TextView)txt).setText("Position"+">>"+t);
        return v;
    }
    

    That's all.Hope it will help..