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

时间:2014-09-11 15:37:28

标签: android android-fragments android-listview android-viewpager fragmentmanager

我有[main]Fragment,其中有两个ViewPagers。每个ViewPager都包含多个FragmentsViewPager Fragments ListViews[main]Fragment获取数据ListViews。我需要更新所有[main]Fragment中的数据,该数据来自[main]Fragment


我尝试删除当前的.remove([main]Fragment)并添加新的{重新加载它',但是当我在.detach([main]Fragment) {中调用.supportFragmentManager()[main]Fragment个方法时{1}}不是在破坏或分离,它只是隐藏而我无法添加新的,只需要为当前的.atach([main]Fragment) ...重新加载活动是个坏主意。请帮帮我。

1 个答案:

答案 0 :(得分:0)

Content Observers

这是一个简单的URI,链接没有显示如何操作。把它放在进行数据更改的类中,这样任何片段都可以通过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);

此代码以片段形式显示,请参阅链接,不要忘记在暂停时取消注册

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

// yourObserver是刷新片段的代码{在这里做代码}

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

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

有关详细信息,请参阅内容提供商和内容观察员。有关Content Provider

的详细信息