我有一个类在我的 Android 应用程序中处理数据库。当数据库更改时,我想更新显示 fragment 信息的 fragment 。我的方法是给 fragment 一个标签,然后使用以下代码找到 fragment :
FragmentManager manager = getFragmentManager();
Fragment fragment = manager.findFragmentByTag("Schedule");
if (fragment instanceof ScheduleFragment){
ScheduleFragment fr = (ScheduleFragment)fragment;
fr.scheduleUpdated();
}
但是,只要我的数据库类不是 Fragment 的扩展,编译器就拒绝识别 getFragmentManager()
。对我来说,扩展 Fragment 是没有意义的,因为数据库类不是 fragment ,而是一个管理数据库的简单帮助程序类。是否可以在不扩展 Fragment 的情况下获得对我的 Fragment 的引用?或者这是不好的做法,应该以其他方式完成?
此外,是否可以从静态方法获取对 fragment 的引用?
最佳答案
尝试使用本地广播管理器。当数据库更改时启动广播 Intent 。在“Schedule” fragment 中注册它,您可以处理数据库更改。 有关 LocalBroadcast Manager 的更多信息,请参阅此链接 how to use LocalBroadcastManager? http://www.vogella.com/tutorials/AndroidBroadcastReceiver/article.html
关于java - 调用 getFragmentManager() 而不扩展 Fragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26257590/