gpt4 book ai didi

android - 在 ViewPager 中重新加载或通知 Fragment 的数据

转载 作者:太空狗 更新时间:2023-10-29 15:01:48 26 4
gpt4 key购买 nike

我有 [main]Fragment,里面有两个 ViewPagers。每个 ViewPager 都包含几个 FragmentsViewPagerFragments[main]Fragment 获取数据到它们的 ListViews 中。我需要更新所有 ListViews 中的数据,这些数据来自 [main]Fragment


我试图删除当前的 [main]Fragment 并添加新的(重新加载),但是当我调用 .remove([main]Fragment).supportFragmentManager() 中的 .detach([main]Fragment) 方法 [main]Fragment 不是破坏或分离,它只是隐藏和我无法添加新的,只需为当前...制作 .atach([main]Fragment) 重新加载 Activity 是个坏主意。请帮助我。

最佳答案

Content Observers

这是一个简单的 URI,链接没有显示如何操作。将它放在执行数据更改的类中,以便任何 fragment 都可以通过 ClassName.CONTENT_URI 静态访问它。

private static final String BASE_PATH = "Imustdorefresh";//see content providers
private static final String AUTHORITY = "somethinguniquehereprobablyappcomname";
public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY
+ "/" + BASE_PATH);

此代码以 fragment 形式出现 onresume 看到链接不要忘记在 onpause 中注销

getContentResolver().
registerContentObserver(
CONTENT_URI,
true,
yourObserver);

//yourObserver 是刷新 fragment 的代码{do stuff here code}

在更改数据的代码段中,每次数据更改后调用 contentresolver notify 方法。内容解析器将调用 fragment 中注册的观察者。

getContext().getContentResolver().notifyChange(CONTENT_URI,null);

有关更多信息,请参阅内容提供者和内容观察者。有关 Content Provider 的更多详细信息

关于android - 在 ViewPager 中重新加载或通知 Fragment 的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25791664/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com