[英]Access a ViewPager Fragment's public method from the main Activity
我有一個XML擁有一個主活動RelativeLayout
有ViewPager
:
<android.support.v4.view.ViewPager
android:id="@+id/pager"
然后,我有一個FragmentStatePagerAdapter
來管理Fragment
。
現在,我在Fragment
上有一個名為getFoo()
的公共方法(該方法顯然返回foo)。
問題:從主活動中獲取Fragment
的foo
的正確方法是什么?
我嘗試在ViewPager
上使用addOnPageChangeListener()
,但隨后無法獲取Fragment
的活動實例。
您可以像擁有自己的ArrayAdapter
一樣擴展FragmentStatePagerAdapter
。
在其中持有一個List<Fragment>
(通過構造函數),然后只使用adapter.getItem(position).getFoo()
非常小的例子。
public MyFragmentStatePagerAdapter extends FragmentStatePagerAdapter {
private List<Fragment> fragments;
public MyFragmentStatePagerAdapter(FragmentManager fm, List<Fragment> fragments) {
super(fm);
this.fragments = fragments;
}
public int getCount() { return fragments.size(); }
public Fragment getItem(int position) { return fragments.get(position); }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.