LayoutInflate.inflate()报空指针错误解决

先入正题:LayoutInflate.inflate()方法报空指针错误大体有两个原因:

1.layoutInflate对象为空,或layoutInflate所依赖的Context对象为空
2.inflate()参数中的布局文件有错,导致XmlPullParser对象无法正确的解析布局文件

根据以上的两点原因,就可以根据Log信息来追踪错误的真正原因了。像我这个花费了我一上午才找到的错误:
Log信息

根据Log信息我们可以知道是有空指针错误,并且知道错误发生在Adpter中,并且具体发生位置是在Android的LayoutInflate类对象中, 再看第一句就知道这是xml有问题(这是我血与泪的教训啊,那就是错误Log的第一句真的很重要)。刚开始我一直在跟踪我的对象的取值情况,这是个体力活啊!耗时!,到后来我跟踪源码,也是几经曲折,最后还是经大神提点,才知道是xml布局有问题。不过在跟踪源码的过程中,我对LayouInflate的原理也有了一定的了解。

layoutInflate对象有三种获取实例的方法:

  1. LayoutInflate.from(Context context)
  2. getLayoutInflate() 调用activity的方法
  3. (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

其实这三种方法都是一种,本质上都是第三种方法的封装罢了。而inflate()方法也有四种不同参数的方法:
1. public View inflate(int resource, ViewGroup root)
2. public View inflate(int resource, ViewGroup root, boolean attachToRoot)
3. public View inflate(XmlPullParser parser, ViewGroup root)
4. public View inflate(XmlPullParser parser, ViewGroup root, boolean attachToRoot)

最后也都是运用XmlPullParser解析布局文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值