2013/01/11

removeFooterView で ClassCastException

Android の ListView。
よく使うコンポーネントなのに、ハマるポイントがいろいろあります。

今回も、今まで何回か「ハマっている」気がするのだけれど、毎回忘れてしまうやつ。

ListView.removeFooterView で java.lang.ClassCastException が出た場合は、ListView.addFooterView を ListView.setAdapter より先に呼んでしまっている可能性が高い。


addFooterView の Javadoc には以下のように書いてあります。

NOTE: Call this before calling setAdapter. This is so ListView can wrap the supplied cursor with one that will also account for header and footer views.

書いてあるのは良いのですが、どうせだったら addFooterView で例外発生させて欲しいものです。
かつ、ClassCastException ではなく、もう少しわかりやすい例外を。
と思うのは私だけでしょうか?
adapter が null なんだから判定は簡単なはず。


まー、書いてあるのに守らなかったお前が悪い。と言われればそれまでですけどね…

0 件のコメント: