0

重複の可能性:
ListView.removeFooterView(View)でのクラッシュ

フッタービューを削除するときにnullポインター例外を取得するにはどうすればよいですか?呼び出す前に、footerviewとlistviewの両方がnullでないことを確認しました

myListView.removeFooterView(mFooterView)

このリストビューには、マルチリストアダプタがあります。また、追加された可能性のあるすべてのフッターの親を確認しましたが、それぞれの親はnullでした。

ところで、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()

どのフッターでも問題ないようです。この時点で削除しようとしているのは、追加された可能性のある4つのフッターのいずれかです。

少しコンテキストがありますが、ListViewは現在表示されておらず、フォーカスがあり、Async呼び出しが戻った後にフッターがクリアされています。同じMyActivityに3つのリストビューがあります。このListViewは現在表示されていません。フォーカスはありませんが、nullポインター例外がありますか?

4.03をコンパイルし、AndroidSDK2.2にデプロイしています

また、フッター数が0より大きいことを確認しています。

4

3 に答える 3

3

AndroidAPIのバージョンである可能性があります。これはここで非常によく説明されています:ListView.removeFooterView(View)でのクラッシュ

AndroidチームがAPIでNULLをチェックするのを忘れているようです。これは、customeAdapterクラスで修正できる場合があります。

于 2012-10-03T22:00:09.080 に答える
1

ご覧のとおり、NullpointerはコードではなくAPIが原因です。それはあなたがそれを扱うことができないという意味ではありません。私はあなたのビューオブジェクトに良くない何かがあるに違いない。

ListView.java:461

明らかにそれはアンドロイドAPIコードの内部で引き起こされたと言っています...

于 2012-10-03T21:54:02.307 に答える
0

私は2つのことのうちの1つに賭けます:

  1. myListViewが十分に膨らんでいない、つまり、未定義のIDを指しているView(フッター/ヘッダーが追加されたとき、またはリストアダプターが設定されたときに同じ問題が発生する可能性があるため)。また、
  2. 私の2番目の推測、そして最も可能性が高いのmFooterViewはnullです。右フッターを膨らませたことを確認してくださいView

進捗状況を教えてください。

于 2012-10-03T22:00:50.760 に答える