我有一个在我的Android应用程序中处理数据库的类。当数据库发生变化时,我想更新显示青蛙信息的片段。我的方法是给片段一个标签,然后用以下代码找到片段:
FragmentManager manager = getFragmentManager();
Fragment fragment = manager.findFragmentByTag("Schedule");
if (fragment instanceof ScheduleFragment){
ScheduleFragment fr = (ScheduleFragment)fragment;
fr.scheduleUpdated();
}
但是,只要我的数据库类不是Fragment的扩展,编译器就会拒绝识别getFragmentManager()
。对我来说,扩展Fragment是没有意义的,因为数据库类不是片段,而是一个管理数据库的简单助手类。是否可以在不扩展Fragment的情况下获取对我的片段的引用?或者这是不好的做法,应该以另一种方式完成?
另外,是否可以从静态方法获得对片段的引用?
答案 0 :(得分:1)
尝试使用localBroadcast管理器。当数据库更改时,播放广播意图。在“Schedule”片段中注册此项,您可以处理数据库更改。 有关LocalBroadcast Manager的更多信息,请参阅此链接 how to use LocalBroadcastManager? http://www.vogella.com/tutorials/AndroidBroadcastReceiver/article.html