在开发项目管理系统android版时,首页使用了tab, 这样就会使用到fragment,但是在点击tab时,总是会遇到getActivity为null 最后发现 在点击切换tab过快时,就会出现为null的情况
其实就是在onAttach时,fragment与activity关联,这时getActivity可以取到值不会空 但是我们切换完取消联联后 getActivity()这个值就取不到了
这时候fragment中还有一些操作,比如异步加载数据 还需要用到getActivity(),这时就会报空指针
解决方法是在onAttach将activity赋到fragment的内部变量中
import android.app.Activity;
import android.content.Context;
import androidx.fragment.app.Fragment;
public class DemoFragment extends Fragment {
private Activity fromActivity;
public Activity getFromActivity() {
return fromActivity;
}
public void setFromActivity(Activity fromActivity) {
this.fromActivity = fromActivity;
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
if(null!=context){
setFromActivity((Activity) context);
}
}
}