方法一:
1、在onCreatView里面执行初始化操作
2、context使用之前判空
3、当出现这个问题时,只要在Fragment 中声明一个上下文类型的成员变量,并在onAttach()方法中将getActivity()的值赋给变量,在Fragment中使用到getActivity()时,都是用context即可。也就是说在将Fragment挂载到Activity时,就获得到了这个activity,并将这个activity保存起来了,这样就可以直接使用而不需要每次使用时都调用一遍getActivity()了。
4、MainActivity重写onSaveInstanceState方法,将super.onSaveInstanceState(outState);注释掉,让其不再保存Fragment的状态,达到其随着MainActivity一起被回收的效果!
方法二:
把commit()方法替换成 commitAllowingStateLoss()------方法是在该Activity即将被销毁前调用,来保存Activity数据的,如果在保存玩状态后再给它添加Fragment就会出错
方法三:
在add(fragment) 的时候进行判断 是否已经添加该fragment
方法是isAdded()
如果以上方法都不行可参考如下:
http://blog.csdn.net/u014727709/article/details/53519937