调用getFragmentManager()而不扩展Fragment

时间:2014-10-08 13:02:43

标签: java android android-fragments

我有一个在我的Android应用程序中处理数据库的类。当数据库发生变化时,我想更新显示青蛙信息的片段。我的方法是给片段一个标签,然后用以下代码找到片段:

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

但是,只要我的数据库类不是Fragment的扩展,编译器就会拒绝识别getFragmentManager()。对我来说,扩展Fragment是没有意义的,因为数据库类不是片段,而是一个管理数据库的简单助手类。是否可以在不扩展Fragment的情况下获取对我的片段的引用?或者这是不好的做法,应该以另一种方式完成?

另外,是否可以从静态方法获得对片段的引用?

1 个答案:

答案 0 :(得分:1)

尝试使用localBroadcast管理器。当数据库更改时,播放广播意图。在“Schedule”片段中注册此项,您可以处理数据库更改。 有关LocalBroadcast Manager的更多信息,请参阅此链接 how to use LocalBroadcastManager? http://www.vogella.com/tutorials/AndroidBroadcastReceiver/article.html