0

可能重复:
ListView.removeFooterView(View) 上的崩溃

删除页脚视图时如何获得空指针异常?我在调用之前检查了页脚视图和列表视图都不为空

myListView.removeFooterView(mFooterView)

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

顺便说一句,getAllFooterViews 到底在哪里?有页脚视图(页脚视图)?SDK 中的方法。

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

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

哪个页脚似乎并不重要。它实际上是我此时尝试删除的任何内容,可能已添加的四个页脚中的任何一个。

一些上下文,ListView 当前不可见,确实有焦点,并且在 Async 调用返回后正在清除页脚。我在同一个MyActivity上有三个listview,而这个ListView目前是不可见的,它没有焦点,但还是空指针异常?

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

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

4

3 回答 3

3

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

看起来 Android 团队可能忘记在他们的 API 中检查 NULL。您可以在您的客户适配器类中解决此问题。

于 2012-10-03T22:00:09.080 回答
1

如您所见,Nullpointer 是由 API 而不是您的代码引起的。这并不意味着你不能处理它。我敢打赌,您的视图对象有一些不好的地方。

ListView.java:461

清楚地说它是在android API代码内部引起的......

于 2012-10-03T21:54:02.307 回答
0

我会打赌以下两件事之一:

  1. 您的myListView没有很好地膨胀,即您指向一个未定义的ViewID(不太可能,因为在添加页脚/页眉或设置列表适配器时您可能会遇到同样的问题);或者,
  2. 我的第二个猜测,也是最有可能的,mFooterView是 null。确保你已经膨胀了正确的页脚View

让我知道你的进展。

于 2012-10-03T22:00:50.760 回答