久しぶりの更新です。
最近ちょいちょいとAndroidの方の開発もしています。
その中で、3日ほど詰まってしまったので備忘録を残しておきます。
内容としては、ListViewの各行を押したときに反応しないというものです。
ListViewでは上記の様な問題は結構発生するようで、様々な原因が考えられ、
そのおかげで解決まで時間がかかってしまいました。
で、自分の原因は、カスタムアダプタークラスの継承したisEnableメソッドで、falseを返しているという、とても単純なものでした。
他のクラスで選択されては困るとfalseにしていたものを、
すっかり失念したままコピペしていました。
折角なので、詰まっている間に調べた他の原因を残しておきます。
【ListView内のアイテムに、onClickLisnerが反応する物が含まれる】
多くはコレになります。
そちらにonClickイベントが渡されてしまい、onItemClickが反応しなくなるようです。
解決法は、それぞれのアイテムに
android:focusableInTouchMode=”false” android:focusable=”false”を設定
【アイテムの中にTextViewが含まれる】
android:inputType=”textMultiLine”があると反応しません。
android:minLines/android:maxLinesを使用すると回避できます。
android:autoLinkもテキストの内容によっては反応しなくなります。
【ランダムに発生】
原因は不明ですが、ListViewにadaptorをセットする前にonItemClickListnerを設定すると回避できる場合があるようです。
参考:
http://xjaphx.wordpress.com/2011/07/14/listview-doesnt-respond-to-onitemclicklistener/
0 件のコメント:
コメントを投稿