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

你可能感兴趣的:(android,android,ListView,ListView,ListView,3.2,removeheadView)