在Fragment中getActivity()为空问题已解决
来源:互联网 发布:域名符号有什么用 编辑:程序博客网 时间:2024/05/16 15:45
最近在做一个ViewPager+Fragment多个标题切换的项目中,突然切换多次后发现适配器中抱了java.lang.NullPointerException,所用到的对象是getActivity(),通过debug得到getActivity(),而得到的是null。但是我在其他方法中又可以得到。
CastleActiveFriendAdapter adapter = new CastleActiveFriendAdapter(getActivity(), activeUsersTotal, 0,fightAreaId);listView.setAdapter(adapter);通过观察代码,而理论上getActivity()应该得到的是主线程的activity,故得不到activity。又因为getActivity()必须在生命周期onAttach与onDetach之间调用才有效,所以解决的办法在onAttach中将上下文进行保存,如下:
Activity mActivity;@Overridepublic void onAttach(Activity activity) { super.onAttach(activity); mActivity = activity;//保存activity引用}
这下问题解决了:CastleActiveFriendAdapter adapter = new CastleActiveFriendAdapter(activity , activeUsersTotal, 0,fightAreaId);listView.setAdapter(adapter);总结:当遇到getActivity()为null,或getContext()时,先冷静想想以下3点:
1. 是不是放在了第三方的回调中
2. 是不是在其他进程中调用了(其实第一点就是在其他进程中调用了)
3. 是不是调用时不在指定生命周期范围内(onAttach与onDetach之间)
一般不是上述情况就不会得到null啦,如有不足,欢迎提出,谢谢。
阅读全文
0 0
- 在Fragment中getActivity()为空问题已解决
- 解决在Fragment中getActivity()为空问题
- fragment中getactivity为空
- Fragment中getActivity()和getContext()为空的问题
- fragment getActivity()为空
- fragment使用getActivity(),出现getActivity()为空
- Fragment中getActivity为null的问题
- Android 保存 Fragment 引用及 getActivity() 为空问题
- fragment的handler中getActivity空指针问题
- 解决Android里getActivity()为空的问题
- fragment遇到getactivity为空的情况
- Fragment中调用getActivity为null的问题
- 关于Fragment中getActivity为Null的问题
- Fragment中调用getActivity为null的问题
- Fragment中调用getActivity为null的问题
- 关于Fragment中getActivity为Null的问题
- Fragment中调用getActivity概率性为null的问题
- Fragment中调用getActivity为null的问题
- Oracle数据库-2
- Python学习笔记(八)—切片(slicing)
- 工具分享: XML格式化工具(XMLFormatter)
- JS跨域交互(jQuery+php)之jsonp使用心得
- 利用蓝牙来传送图片等文件
- 在Fragment中getActivity()为空问题已解决
- 红黑树
- iOS调试技巧
- 数据平台维度模型设计十个技巧
- 主成分分析方法和matlab函数中的princomp
- 第一次经历渗透测试的总结
- Android5.0 Ubuntu16.0.4配置jdk7添加源
- java基本数据类型
- 口令限制参数+口令管理+查看口令限制参数