android3.2系统removeHeadView空指针异常

今天在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是被移除了的)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值