我的 FragmentActivity 包含带有一些页面的 ViewPager。一旦修改了一个页面,其他页面需要收到通知。所以我的步骤: 1. 从片段发送通知到活动 2. 获取片段列表 3. 向每个片段调用通知。
问题出在第 2 步,获取片段。调用 adapter.getItem(int i) 会调用 MyFragmentAdapter.getItem(int i),它会返回未附加到活动的新 Fragment。
有任何想法吗?
我的 FragmentActivity 包含带有一些页面的 ViewPager。一旦修改了一个页面,其他页面需要收到通知。所以我的步骤: 1. 从片段发送通知到活动 2. 获取片段列表 3. 向每个片段调用通知。
问题出在第 2 步,获取片段。调用 adapter.getItem(int i) 会调用 MyFragmentAdapter.getItem(int i),它会返回未附加到活动的新 Fragment。
有任何想法吗?
将 next 方法添加到 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;
}
为什么不直接从已更改的 Fragment 发送一个广播,然后在您的其他 Fragment 中使用一个广播接收器来接收该广播?