因为所有片段一起加载在Pager Sliding选项卡中,我需要使用setUserVisibleHint()
来填充选定的片段。
我在setUserVisibleHint()
方法中遇到了上下文问题:
当我使用NPE Exception
作为我的上下文时,它引发了getActivity
。感谢
答案 0 :(得分:6)
因为 getActivity 会在片段附加之前返回null,您需要检查此值是否为null或检查附加到活动的片段或 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
}
}
答案 1 :(得分:0)
最好使用newInstance方法并将String放在那里。然后在片段中使用
getArguments().getString("KEY")