2013/01/11
removeFooterView で ClassCastException
よく使うコンポーネントなのに、ハマるポイントがいろいろあります。
今回も、今まで何回か「ハマっている」気がするのだけれど、毎回忘れてしまうやつ。
ListView.removeFooterView で java.lang.ClassCastException が出た場合は、ListView.addFooterView を ListView.setAdapter より先に呼んでしまっている可能性が高い。
addFooterView の Javadoc には以下のように書いてあります。
書いてあるのは良いのですが、どうせだったら addFooterView で例外発生させて欲しいものです。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.
かつ、ClassCastException ではなく、もう少しわかりやすい例外を。
と思うのは私だけでしょうか?
adapter が null なんだから判定は簡単なはず。
まー、書いてあるのに守らなかったお前が悪い。と言われればそれまでですけどね…
0 件のコメント:
コメントを投稿