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
Recycler VIew 和 Adapter 打开内容不同的Activity