android3.2系统removeHeadView空指针异常
16lz
2021-01-26
今天在3.2版本的平板上运行这段代码报出了空指针异常,最终该异常锁定在Listivew的297行
ListView listview = (ListView)adapterView; listview.removeHeaderView(headView);//空指针异常
1.其中,adapterView是AdapterView对象,而且adapterView.getAdapter()!=null,listivew!=null,headVIew!=null,listview.getHeadViewCount=1
2.headView是该类的私有对象,在该段代码前指向了一个TextView对象,并且执行了((ListView) adapterView).addHeaderView(textView, R.string.no_data, false);代码
3.该段代码在android系统2.3和4.0,4.2上都没有报错,十分蹊跷。猜想这可能是3.2版本的一个bug,这个异常在3.2上是必现的.由于我机器上没有3.2版本的源码,所以暂时无 法精确定位到源码具体行数。
解决方案:
既然是空指针,那么完全用捕获的方式处理。
try{if(listview != null){ listview.removeHeaderView(headView);}}catch(Exception e){if(Log.D){Log.d(TAG,"do removeHeaderView() Exception-->");}}最终的效果是,在3.2版本上,捕获到了该异常。但是更奇怪的是,页面显示实际效果是执行了的!(就是说目标listview中的headview是被移除了的)
更多相关文章
- android java.lang.IllegalStateException: System services not
- android - JNI接口函数 (3)
- android版本更新全程解析
- Android(Java):jni学习
- Android(安卓)Studio Gradle使用笔记
- Android(安卓)Studio2.3正式版带SDK安装教程 亲测有效!
- Android(安卓)Studio下xUtils开源库导入问题
- (一) 基于Windows的Eclipse安装Android(安卓)NDKR7
- Android(安卓)WebView Java和JavaScript的交互(一)