2014-10-08 2 views
0

У меня есть класс, который обрабатывает базу данных в моем приложении для Android. Когда база данных изменится, я хотел бы обновить фрагмент, отображающий информацию из периода. Мой подход был дать фрагменту тег, а затем найти фрагмент с помощью следующего кода:Вызов getFragmentManager() без расширения фрагмента

FragmentManager manager = getFragmentManager(); 
     Fragment fragment = manager.findFragmentByTag("Schedule"); 
     if (fragment instanceof ScheduleFragment){ 
      ScheduleFragment fr = (ScheduleFragment)fragment; 
      fr.scheduleUpdated(); 
     } 

Однако, до тех пор, как мой класс базы данных не является расширение фрагмента, компилятор отказывается признать getFragmentManager(). Для меня нет смысла расширять фрагмент, поскольку класс базы данных не является фрагментом, а просто вспомогательным классом для управления базой данных. Можно ли получить ссылку на мой фрагмент без расширения фрагмента? Или эта плохая практика и должна быть по-другому?

Кроме того, можно ли получить ссылку на фрагмент из статического метода?

ответ

1

попробуйте использовать localBroadcast manager. когда изменения в базе данных освещают намерение трансляции. зарегистрируйте это в разделе «Расписание», и вы можете обрабатывать изменения базы данных. Обратитесь к этой ссылке больше о LocalBroadcast Менеджер how to use LocalBroadcastManager? http://www.vogella.com/tutorials/AndroidBroadcastReceiver/article.html

+0

Спасибо! Он отлично работает :-) – Jorn

Смежные вопросы