我在哪里可以getContext()
访问Fragment
?我的意思是,它不是null并且可以使用(例如,用于控件创建)。是onAttach
,onCreateView
还是onActivityCreated
?
答案 0 :(得分:3)
getContext()
在onAttach()
和onDetach()
答案 1 :(得分:2)
所有提到的答案基本上都是正确的。您应该在onAttach和onDetach之间获得活动的上下文,所以我喜欢将其添加到片段中:
private Context mContext;
@Override
public void onAttach(Context context) {
super.onAttach(context);
mContext = context;
}
@Override
public void onDetach() {
super.onDetach();
mContext = null;
}
,然后每当我使用mContext时,我都会添加一张支票:
if(mContext != null) {
//your code that uses Context
}
答案 2 :(得分:1)
在getActivity()
和onAttach
之间使用onDetach
来获取附加的Activity
Context
Fragment
。
答案 3 :(得分:0)
通过在getContext()
内拨打onCreateView()
,您可以非常安全。如果你看一下docs {{3}},那么从onAttach
开始,你的片段会有一个背景。