[英]Android Set views in fragment from Parent Activity in View Pager
我有一个使用ViewPager和FragmentPagerAdapter来设置三个片段的活动。 现在,当活动加载时,我发出网络请求,并计划在收到网络答复时分三部分更新视图。 现在,我很难从主要活动中设置这些视图。 我尝试过的事情(并且失败了):
onViewCreated
方法中,我保存了textview的全局视图引用,然后尝试在网络负载时从Activity调用该setter。 文本视图为NULL,即在调用setter时不实例化。 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.