从ListView中删除页脚时是否为空指针?

时间:2012-10-03 21:40:32

标签: android android-layout

  

可能重复:
  Crash on ListView.removeFooterView(View)

删除footerview时如何获得空指针异常?在调用

之前,我检查了footerview和listview都不为null
myListView.removeFooterView(mFooterView)

此listview确实有一个多列表适配器。我还检查了每个可能已添加的页脚的父级,并且每个页脚的父级都为空。

BTW,getAllFooterViews究竟在哪里? hasFooterView(footerView)? SDK中的方法。

PS。我认为编写良好的API不应该隐藏这些信息。

  FATAL EXCEPTION:  main
  java.lang.NullPointerException
  at android.widget.ListView.removeFooterView(ListView.java:461)
  at com.mypackage.MyActivity.clearAllFooters()

哪个页脚似乎无关紧要。它实际上是我试图删除的任何东西,可能已添加的四个页脚中的任何一个。

一些上下文,ListView当前不可见,确实有焦点,并且在返回异步调用后页脚被清除。我在同一个MyActivity上有三个列表视图,这个ListView当前不可见,它没有焦点,但仍然是空指针异常?

我正在编译4.03并在android sdk 2.2上部署

我也在检查页脚数是否大于0。

3 个答案:

答案 0 :(得分:3)

它可能是您的Android API的版本。这里描述得非常好:Crash on ListView.removeFooterView(View)

看起来Android团队可能忘记在他们的API中检查NULL。您可以在自定义适配器类中修复此问题。

答案 1 :(得分:1)

正如您所看到的,Nullpointer是由API而不是您的代码引起的。这并不意味着你无法处理它。我敢打赌你的观察对象上有一些不好的东西。

ListView.java:461

清楚地说它导致了android API代码......

答案 2 :(得分:0)

我敢打赌两件事之一:

  1. 您的 myListView 未充分夸大,即您指向未定义的View ID(非常不可能,因为添加页脚/标题时可能会出现同样的问题,或者当列表适配器设置时);或者,
  2. 我的第二个猜测,也是最有可能的,mFooterView为空。确保您已向右侧页脚View充气。
  3. 让我知道你的进展。