我终于找到了答案!
要将消息传递给内部片段,您只需在其中调用一个公共函数。寻找正确的片段时,棘手的部分来了!
因此,要首先获取片段,请将其添加到 CustomFragmentPagerAdapter 中:
public static class TabsAdapter extends FragmentPagerAdapter implements .. {
..
public Fragment findFragment(int position) {
String name = "android:switcher:" + mViewPager.getId() + ":" + position;
FragmentManager fm = ((FragmentActivity) mContext).getSupportFragmentManager();
Fragment fragment = fm.findFragmentByTag(name);
if (fragment == null) {
fragment = getItem(position);
}
return fragment;
}
然后像这样从主要活动中访问片段
CustomFragment fragment = mTabsAdapter.findFragment(1);
if(fragment != null)
fragment.customFunction(args); //<-- your custom function
请注意,我实际上对所有片段类都使用了 ActionBarSherlock。但这仍然能够解决您的问题。