Android在View Pager中的Parent Activity中设置片段视图

时间:2015-11-20 18:06:53

标签: java android android-fragments android-viewpager

我有一个使用ViewPager和FragmentPagerAdapter设置三个片段的活动。现在,当活动加载时,我发出网络请求并计划在网络回复时更新三个片段中的视图。现在我很难从主要活动中设置这些视图。我尝试过的事情(并且非常失败)是:

  • 在Fragment Class中创建一个setter来设置视图数据。在片段onViewCreated方法中,我保存textviews的全局视图引用,然后尝试从网络负载上的Activity调用该setter。 textview是NULL,即在调用setter时甚至没有实例化。
  • 在Activity中创建一个getter以从Fragments onViewCreated方法获取数据。但在这种情况下,getter将找不到网络请求未完成的值!

任何提示如何进行?我有三个带有相关数据的片段,想要从一个点控制他们的视图设置。我不想从每个片段进行单独的网络调用。

1 个答案:

答案 0 :(得分:1)

  
      
  • 在Fragment Class中创建一个setter来设置视图数据。在片段onViewCreated方法中,我保存了全局视图引用   textviews,然后尝试从网络上的Activity调用该setter   加载。 textview是NULL,即在setter时甚至没有实例化   调用。
  •   

你做得对。

为什么这些textview具有NULL值是关于在调用setter方法时使用的片段引用。

简而言之:将此功能添加到FragmentPagerAdapter实现

public Fragment getFragmentByPositionUsingTag(int position) {
    Fragment fragment = fm.findFragmentByTag("android:switcher:" + R.id.viewPager + ":" + position);

    return fragment;
}

并尝试使用它返回的引用来调用该方法。 (有关更多信息,有很多很好的答案)。