Java Android在视图寻呼机中的父活动片段中设置视图

Java Android在视图寻呼机中的父活动片段中设置视图,java,android,android-fragments,android-viewpager,Java,Android,Android Fragments,Android Viewpager,我有一个活动,它使用ViewPager和FragmentPagerAdapter设置三个片段。现在,当活动加载时,我发出一个网络请求,并计划在网络回复时更新三个片段中的视图。现在我很难从主要活动中确定这些观点。我尝试过(但失败得惊人)的事情有: 在Fragment类中创建一个setter来设置视图数据。在fragmentonViewCreated方法中,我保存TextView的全局视图引用,然后尝试从网络负载上的活动调用该setter。TextView为空,即在调用setter时甚至没有实例化

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

  • 在Fragment类中创建一个setter来设置视图数据。在fragment
    onViewCreated
    方法中,我保存TextView的全局视图引用,然后尝试从网络负载上的活动调用该setter。TextView为空,即在调用setter时甚至没有实例化
  • 在Activity中创建一个getter,从Fragments
    onViewCreated
    方法获取数据。但是在这种情况下,getter找不到值,因为网络请求未完成
有什么建议吗?我有三个片段和相关数据,希望从一个点控制它们的视图设置。我不想对每个片段进行单独的网络调用

  • 在Fragment类中创建一个setter来设置视图数据。在片段
    onViewCreated
    方法中,我保存的是全局视图引用 TextView,然后尝试从网络上的“活动”调用该setter 负载文本视图为空,即当setter为空时甚至没有实例化 打电话来
你做得对

为什么这些文本视图有空值是关于调用setter方法时使用的片段引用

简而言之:将此函数添加到FragmentPagerAdapter实现中

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

    return fragment;
}

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

太棒了。谢谢!顺便说一句,有没有一种方法可以通过标题而不是位置来获取片段?不过,我面临的一个问题是,正如我所说,我有三个片段,因此当我滑动到其他片段,然后返回到第一个片段时,集合文本消失,findFragmentByTag返回null。是因为片段在内部被分离吗?创建两个ArrayList来存储片段的引用和标题。1.您可以将位置连接到标题2。如果findFragmentByTag返回null,则尝试使用arraylist中的引用(但仅当findFragmentByTag返回null时)。用它做实验