将数据加载到ListFragments中

时间:2013-04-26 16:50:16

标签: android android-fragments android-viewpager android-listfragment

我想将网络中的数据加载到片段中。在Activity内,我有一个ViewPager我正在使用FragmentPagerAdapter为其提供片段。问题是:

如何从活动中检测到ViewPager中的所有片段都已创建并准备好显示数据。如何通知片段,活动内部有数据应该显示?

1 个答案:

答案 0 :(得分:1)

  

如何从活动中检测到来自ViewPager的所有片段都是   创建并准备好显示数据。

这听起来有点奇怪。您Activity不需要知道所有ViewPager片段何时被初始化(因为用户实际上只会看到一个片段(如果您不在,那么每一面都会有一个片段可用) 39;与setOffScreenPageLimit()混乱),更新其余部分没有意义。

  

如何通知片段,活动内部有数据   应该出示?

您的片段可以将自己注册为Activity数据加载事件的侦听器。 Activity将完成获取数据的工作,然后在所有已注册的片段上调用更新方法(应该存储在WeakReferences中,以避免在我们不应该使用时保留它们#39; T)。主要问题是您有尝试更新项目的风险

另一种hacky方法是使用Activity

之类的东西
// get the current fragment(add/subtract one for the available fragments on each side of the curently visible 
Fragment f = getSupportFragmentManager().findFragmentByTag("android:switcher:" + R.id.ViewPagerId + ":" + mViewPager.getCurrentItem()); one.)
f.update();

其余的片段将在重新创建时检查新数据是否可用。