java - 调用 getFragmentManager() 而不扩展 Fragment

标签 java android android-fragments

我有一个类在我的 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/

相关文章:

java - Android - 创建一个类的实例并从 String 调用

android - ViewPager 安卓 :NullPointerException: Attempt to invoke virtual method

java - 为嵌套 HashMap 实现 Java 迭代器,其中元素可以是 1) Integer 或 2) 另一个嵌套 HashMap 或 3) 空 HashMap 中的任意一个

具有多个 orderBy 的 Android firebase 查询

javascript - 发送图像套接字io和android

安卓图片上传问题

android - Xamarin Forms 图像不显示

android - IllegalStateException fragment 在旋转后未附加到 onPostExecute 中的 Activity ,但未调用 onDetach

java - JButton .doClick() 不做任何事情?

java - 如何不覆盖文件(使用附加模式)