Как уведомить все фрагменты в ViewPager о том, что один из них изменился? - PullRequest
3 голосов
/ 03 ноября 2011

My FragmentActivity содержит ViewPager с некоторыми страницами.После изменения одной страницы другие должны получать уведомления.Итак, мои шаги: 1. Отправить уведомление от фрагмента к занятию 2. Получить список фрагментов 3. Вызвать уведомление для каждого.

Проблема в шаге 2, чтобы получить фрагменты.Вызов adaptor.getItem (int i) вызывает MyFragmentAdapter.getItem (int i), который возвращает новый фрагмент, который не привязан к действию.

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 10 ноября 2011

Добавление следующих методов в 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;
}
0 голосов
/ 03 ноября 2011

Почему бы просто не отправить широковещательную рассылку из фрагмента, который изменился, а затем включить приемник широковещательной передачи в другие фрагменты, которые принимают эту широковещательную передачу?

...