应该在setUserVisibleHint方法中使用什么上下文

Maj*_*rya 3 android android-fragments material-design

因为所有片段一起加载在Pager Sliding选项卡中,我需要使用setUserVisibleHint()laoding选择的片段.我在setUserVisibleHint()方法中NPE Exception遇到了Context问题:当我getActivity用于Context 时它会引发.谢谢

pho*_*van 6

因为getActivity将在附加到Activity的片段之前返回null,您需要检查此值是否为null或检查附加到activity的片段或onActivityActtached函数之后.

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    if (getActivity() != null) {
       //do something
    }
} 

//or 
 boolean isAttached = false;
 @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        isAttached = true;
    }

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    if (isAttached) {
       //do something
    }
} 
Run Code Online (Sandbox Code Playgroud)