解决Listview页脚RemoveFooterView报java.lang.ClassCastExcepti

今天又在处理这个问题的时候突然之间悟出来了。先看下ListView的setAdapter方法里的部分代码:

[java]view plaincopy

    publicvoidsetAdapter(ListAdapteradapter){…………if(mHeaderViewInfos.size()>0||mFooterViewInfos.size()>0){mAdapter=newHeaderViewListAdapter(mHeaderViewInfos,mFooterViewInfos,adapter);}else{mAdapter=adapter;}…………}

看出点什么没,代码的大致意思是如果ListView没有headerView或者footerView的时候,与listView相关联的Adapter就是传进来的参数Adapter,如果有,就将原来的Adapter包装成HeaderViewListAdapter。明白了错误,也就有了相应的解决方案了。在setAdapter执行前如果之后需要headerView或者footerView的,可以先add到ListView里,如果不需要一开始的时候显示,可以在setAdapter后立刻remove掉就好了,这样子处理主要是为了让创建的是Adapter是HeaderViewListAdapter。

近朱者赤,近墨者黑

解决Listview页脚RemoveFooterView报java.lang.ClassCastExcepti

相关文章:

你感兴趣的文章:

标签云: