如何通知ViewPager中的所有片段,其中一个片段发生了变化?

时间:2011-11-03 16:51:46

标签: android android-fragments android-viewpager

我的FragmentActivity包含带有一些页面的ViewPager。修改一个页面后,其他页面需要接收通知。 所以我的步骤: 1.从片段发送通知到活动 2.获取片段列表 3.致电通知每个人。

问题出在第2步,获取片段。 调用adapter.getItem(int i)调用MyFragmentAdapter.getItem(int i),它返回未附加到activity的新Fragment。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

向YourFragmentPagerAdapter添加下一个方法可以解决问题:

public Fragment getActiveFragment(ViewPager container, int position) {
    String name = makeFragmentName(container.getId(), position);
    return  mFragmentManager.findFragmentByTag(name);
}

private static String makeFragmentName(int viewId, int index) {
    return "android:switcher:" + viewId + ":" + index;
}

答案 1 :(得分:0)

为什么不直接从片段中发送已更改的广播,然后在接收广播的其他片段中放置广播接收器?