2013-02-08 22 views
4

我正在開發一個項目,其中我在一個屏幕上使用View Pager,它只有兩個頁面。從片段設置viewPager的currentItem

在第一個我有一個小部件簡單的形式。在第二頁上,我有一些產品名稱和數量的列表視圖。

選擇放置在第一頁(Frgament)中的微調器的特定選項後,是否可以從第一頁改變爲第二頁?

我已經閱讀了類似的問題,這種方法:

ViewPager.setCurrentItem(int index); 

使得有可能改變一個特定頁面,事情是我不知道如何引用到我宣佈我的活動這viewpager對象從我的片段主持。

回答

18

雖然,我完全不瞭解這個情況。 從我所瞭解的情況來看,這是一種在這種情況下可行的黑客攻擊。

在活動:

public ViewPager getViewPager() { 
    if (null == mViewPager) { 
     mViewPager = (ViewPager) findViewById(R.id.view_pager_id) 
    } 
    return mViewPager; 
} 

在片段:

((YourActivitName)getActivity()).getViewPager().setCurrentItem(index); 
+7

更好寫入公共無效setCurrentPagerItem(INT項){ pager.setCurrentItem(項目); }。 – 2013-02-08 16:26:55

+0

非常感謝,它的工作。此外,@DoctororDrive提供的解決方案也能正常工作。 – Henry1988 2013-02-08 19:01:24

+2

@DoctororDrive的解決方案更「正確」(注意引號),因爲您不直接暴露屬於內部Activity實現的ViewPager。當然,Java允許你做任何一個,你會得到支持這兩種方法的人。 – 2013-07-08 23:00:23