BaseAdapterでハマった話

 

BaseAdapterをextendsして、ボタンやらが多数あるlistを作成したんだけど、どうもonItemClickが呼ばれない。

 

いろいろ試行錯誤してもうまくいかず。

検索してみたら、どうやらButton, ImageButton, CheckBox, RadioButtonがある場合は、forcusableを無効にしないといけないらしい。

 

android:focusable="false"
android:focusableInTouchMode="false"

 

stackoverflow.com

 

理由についてはわからなかった。。。

 

( 追記)

More elegantなsolutionがあるらしいです。

rootのlayoutにコレを追加すればいいだけ。

android:descendantFocusability="blocksDescendants"

 

stackoverflow.com

 

How elegant!!