2014-02-13 2 views
1

Я реализовал эти строки кода, но он не работает.как я получаю текущий видимый фрагмент из представления пейджера Адаптер ..?

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(); 
     } 
    } 

ответ

1

Чтобы получить экземпляр в данный момент виден фрагмент, попробуйте следующее

viewPager.setOnPageChangeListener(this); 

и в следующем методе

@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 
} 

так в методе setFragmentFor() вы должны написать свою собственную логику, чтобы получить новый экземпляр фрагмента в зависимости от значения аргумента, переданного по setFragmentFor().

+0

ViewPager # setOnPageChangeListener устарел. Пользователь addOnPageChangeListener – wsgeorge

Смежные вопросы