【Android】ExpandableListViewの子要素タッチでハマった件

Androidアプリの開発をしていてExpandableListViewについてちょっとハマった件を書き留め。

問題概要

ExpandableListView-サンプル1
上記「Extensions」グループ内の子要素(Music、Picture、Document、Custom)のタッチイベントを拾ってリスト右側のon/offを切り替える、という事をやりたかったが、イベントが飛ばない事象に遭遇。

修正した方法、結果

修正前の誤った書き方は以下。

exListView.setOnClickListener(new ExListListener(listAdapter));

間違っていたのは「OnClickListener」をセットしていた事。
上記例のように子要素のタッチイベントを拾いたい時は「OnChildClickListener」を使う。

これを正したら期待通りの動きをしてくれた。
以下、子要素「Music」のタッチ前→タッチ→タッチ後(ON/OFFを切り替えている)
ExpandableListView-サンプル1

ExpandableListView-サンプル2

ExpandableListView-サンプル3

後記

めでたしめでたしだが、解決まで結構時間が掛かった。

問題発生当初は「ググればすぐ解決するよな~」と思って
「ExpandableListView タッチイベント 反応しない」といったワードで検索していたが、ExpandableでないListView自体にView内の要素の属性によってタッチイベントが発生しなくなるという、別の問題の対処法が検索にヒットしてそちらの対処法を試したり何だりしているうちに結構時間を取られてしまった。

上記の他の方が直面する問題はともかく、自分は単なる勘違いだったのでマニュアルをちゃんと読まんといかんなぁと思いました。