view、adapter、getActivity()、infragment 都是 null

Posted

技术标签:

【中文标题】view、adapter、getActivity()、infragment 都是 null【英文标题】:view, adapter, getActivity(), in fragment are all null 【发布时间】:2014-04-18 12:04:40 【问题描述】:

在我的活动中,我调用 fragment 内部的一个方法来更新片段中的 ListView。但是,getActivity() 方法返回 null,listView 为 null,adapter 也为 null。但我可以看到listView 正在显示。为什么它们为空?

注意: 我打电话给FragmentPagerAdapter.getItem(position) 来获取fragment。但是,它将返回一个不同的实例。根据here,我可以通过findFragmentByTag复用片段。

【问题讨论】:

你能发布你的代码吗? 看起来你有两个片段类型的实例 我在我的活动中使用fragmentPagerAdapter,并使用adapter.getItem(position) 来获取片段。那么,它可能会导致不同的实例吗? @gunar 【参考方案1】:

这取决于您何时尝试访问您的活动和列表视图。在 Fragment 的构造函数中,所有这些都不可用,因为它们尚未构建。

触发onActivityCreated()回调后Activity可用 触发onViewCreated()回调后ListView可用

【讨论】:

感谢您的回复,但是当我检查它们是否为空时,我的ListView 是可见的。

以上是关于view、adapter、getActivity()、infragment 都是 null的主要内容,如果未能解决你的问题,请参考以下文章

getActivity().findViewById(R.layout.contacts_list_view) 返回 null

Android之Adapter用法总结(转)

View(视图)——ListView概述Adapter分类

Recycler VIew 和 Adapter 打开内容不同的Activity

View Binding 是不是支持 Adapter 类的视图绑定

Android 简单案例:继承BaseAdapter实现Adapter