最近在调试我的个人大湿说app,发现在4.2系统下直接崩溃了,看log,原来是ListView addHeaderView和setAdapter方法调用顺利不同导致的错误,这里做下记录。
正确调用
|
|
究其原因
Android-18(4.3)的addHeaderView源码:
Android-17(4.2)的addHeaderView的源码:
在17版本中,只要adapter不为空的话,那就直接会抛出异常,而这个异常恰好就是我们文章开头说到的异常。在18版本中,如果adapter不为空的话,则会新建一个adapter,这个adapter会包含了headerview和footerview以及我们传进来的原来的adapter。这是在18版本以后做的一个处理。
以上源码分析来自:从源码上分析ListView的addHeaderView和setAdapter的调用顺序
大湿说
魅族应用市场累计下载4.4万+
,我可没有做过什么推广哦,精品APP,值得下载!