应该在setUserVisibleHint方法

时间:2016-05-30 10:20:01

标签: android android-fragments material-design

因为所有片段一起加载在Pager Sliding选项卡中,我需要使用setUserVisibleHint()来填充选定的片段。 我在setUserVisibleHint()方法中遇到了上下文问题: 当我使用NPE Exception作为我的上下文时,它引发了getActivity。感谢

2 个答案:

答案 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")