android下ListView的奇异异常大集合(持续更新)_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > android下ListView的奇异异常大集合(持续更新)

android下ListView的奇异异常大集合(持续更新)

 2013/11/14 15:50:03  指鹿为驴  博客园  我要评论(0)
  • 摘要:使用ListView的addFooterView或者addHeaderView报错或者不知名的异常:atandroid.widget.ListView.clearRecycledState(ListView.java:522)ps:android2.3经常会出现这种问题Causedby:java.lang.NullPointerExceptionatandroid.widget.ListView.clearRecycledState(ListView.java:522)atandroid
  • 标签:android view list 异常
  • 使用ListView的addFooterView或者addHeaderView报错或者不知名的异常:at android.widget.ListView.clearRecycledState(ListView.java:522)

ps: android 2.3经常会出现这种问题

class="csharpcode">Caused by: java.lang.NullPointerException
at android.widget.ListView.clearRecycledState(ListView.java:522)
at android.widget.ListView.resetList(ListView.java:508)
at android.widget.ListView.setAdapter(ListView.java:440)
at com.company.myapp.MyActivity.refreshList(MyActivity.java:85)
at com.company.myapp.MyActivity.onCreate(MyActivity.java:37)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
... 11 mored
 

当发生这种状况 ,eclipse得到的异常就在你listView.setAdapter(adapter);这句话中,你怎么看listView和adapter都没有空值,正纳闷时,你应该要考虑一下被你添加的FooterView或者HeaderView是否为null,因为空的话。。。ListView就无法测量高度。。。然后无法布局。。最后就报错了。。。还有addFooterView和addHeaderView这两个方法一定要放在listView.setAdapter(adapter)前面,要不然死活都不会出现你想要的FooterView或者HeaderView


 

  • 我们通常在加载数据时,为了省流量不会一次性把数据全部下完,一般是分段下载。分段下载一般会在listview最后面放一个进度条表示正在加载数据,当数据加载完时,我们又要清除它。这时候就要注意了。

mLoadingLayout = (FrameLayout) View.inflate(this, R.layout.load, null);
      listView.addFooterView(mLoadingLayout);
      listView.requestFocus();

这是listview尾部添加一个进度条。

listView.removeFooterView(mLoadingLayout);

这是移除尾部的进度条。

有时候在移除时回报空指针,但listview不为null , mLoadingLayout也不为null,但还是报空指针,原因是因为listview要分为三部分。一是头部,二是中间部,三是尾部。在设置了头部或尾部时,必须要有中间部才能真正意义上的生效。没生效就去移除就会报空指针错误

所以在 listView.removeFooterView(mLoadingLayout)时

必须先调用 listView.setAdapter(adapter);(设置中间部)

adapter可以数据可以为0但不可为null

 

上一篇: WCF服务对于处理客户端连接的一点思考 下一篇: 没有下一篇了!
发表评论
用户名: 匿名