在我的项目中,我将一个适配器D
放入一个非UI片段C
中,进入一个UI片段B
,其自身由一个活动A
实例化:< / p>
活动
A
&gt; UI片段B
&gt;非UI片段C
&gt;适配器D
使用C
保留非UI片段setRetainInstance(true)
以管理HTTP请求和其他内容。
当发生配置更改时,使用UI片段A
销毁活动B
,但使用其适配器C
保留非UI片段D
。
我的问题是,当D.getView(position, view, parent)
ListView调用适配器B
方法来扩充其内容时,我没有non-NULL
Context
可用于扩充视图和执行其他操作动作。我试图通过getActivity
或parent.getContext
来吸引他。
我想找到我的错误......
编辑:
我尝试使用C
而不是B
将非UI片段getChildFragmentManager()
附加到UI片段getFragmentManager()
:
public final FragmentManager getChildFragmentManager()
返回一个私有的FragmentManager,用于放置和管理此片段内的片段。
我获得:
FATAL EXCEPTION: main
...
Caused by: java.lang.IllegalStateException:
Can't retain fragements that are nested in other fragments
所以我认为这是不可能的?
答案 0 :(得分:0)
通过以下方式验证您的电话:
if(!isAdded() || isDetached){
return;
}
您可能正在使用线程或处理程序调用getView,该线程或处理程序仅在您的片段已经分离时才会完成。