0

我嘗試將接口放置在我的Activity,我的片段和我的FragmentStatePagerAdapter中。但是在他們所有的代碼中都沒有到達那裏。這是我的FragmentStatePagerAdapter看起來像,因爲這是我的最新嘗試。OnPageSelected從未到達,如何獲取片段中的當前可見頁面?

FragmentStatePagerAdapter:

public static class AppSectionsPagerAdapter extends FragmentStatePagerAdapter implements OnPageChangeListener 
    { 

    ...... 
    ...... 
    @Override 
    public void onPageScrollStateChanged(int arg0) 
    { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void onPageScrolled(int arg0, float arg1, int arg2) 
    { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void onPageSelected(int arg0) 
    { 
     // TODO Auto-generated method stub 
     Log.w("onpage", "onpage executed"); 
     currentSelectedFragmentPosition = arg0; 
    } 

    public int getCurrentSelectedFragmentPosition() 
    { 
     return currentSelectedFragmentPosition; 
    } 
} 

片段是這樣的:

public class SectionFragment extends ListFragment implements OnPageChangeListener 
     { 

    ...... 
    ...... 
    @Override 
    public void onPageScrollStateChanged(int arg0) 
    { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void onPageScrolled(int arg0, float arg1, int arg2) 
    { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void onPageSelected(int arg0) 
    { 
     // TODO Auto-generated method stub 
     Log.w("onpage", "onpage executed"); 
     currentSelectedFragmentPosition = arg0; 
    } 

    public int getCurrentSelectedFragmentPosition() 
    { 
     return currentSelectedFragmentPosition; 
    } 
} 

但都沒有工作,這將是最有用的,以我在一個片段來使用它,但如果這是不可能的那麼活動或statepager也會工作

+0

你應該添加OnPageChangeListener到viewPager不是AppSectionsPagerAdapter,因爲回調來自viewPager – San

+0

我試過了,也在我的邊緣nt像這樣((MainActivity).getActivity()。setOnPageChangeListener但沒有工作,要麼我試圖在onStart和onCreateView問題是那些不循環,據我所知,我應該在哪裏放置它? – Shishi

+0

其中,在那裏創建的viewPager在下一行寫入mViewPager.setOnPageChangeListener(this); – San

回答

0

AppSectionsPagerAdapter構造函數:加這個

mViewPager.setOnPageChangeListener(this); 

(這假定ViewPager是命名mViewPager一個實例變量)

或者,如在MainActivity.onCreate()替代:

mViewPager.setOnPageChangeListener(mAppSectionPageAdapter); 

(這假定AppSectionPageAdapter是在名爲mAppSectionPageAdapter變量)

+0

mViewPager是在MainActivity中聲明的,但是當我嘗試在AppSectionsPagerAdapter中使用它時,它說它不是靜態的等等。我不確定是否應該將它設置爲靜態? – Shishi

+0

一般儘量避免靜態物體。你爲什麼使AppSectionsPagerAdapter靜態?有什麼好的理由? – ben75

+0

我使它非靜態,它現在正常工作,謝謝! – Shishi