繁体   English   中英

Android在View Pager的父活动中设置片段视图

[英]Android Set views in fragment from Parent Activity in View Pager

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

  • 在“片段类”中创建一个setter来设置视图数据。 在片段onViewCreated方法中,我保存了textview的全局视图引用,然后尝试在网络负载时从Activity调用该setter。 文本视图为NULL,即在调用setter时不实例化。
  • 在Activity中创建一个getter以从Fragments onViewCreated获取数据。 onViewCreated在这种情况下,由于网络请求未完成,getter不会找到这些值!

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

  • 在“片段类”中创建一个setter来设置视图数据。 在片段onViewCreated方法中,我保存了textview的全局视图引用,然后尝试在网络负载时从Activity调用该setter。 文本视图为NULL,即在调用setter时不实例化。

您做对了。

为什么这些textview具有NULL值,这全都与调用setter方法时使用的片段引用有关。

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

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

    return fragment;
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM