GridView内でButtonを使用する場合の注意点

だんだんとなれてきたAndroid開発。 今回のハマったところはこちら。

GridViewの中でButtonを使いたかった

ButterKnifeを使い、ViewHolderパターンでGridViewにセコセコとButtonを乗せていました。

Contextを使いつつ、ボタンが押されたら画面遷移をしたいと考えていたので、Activity直下のフィールドに @OnItemClick(R.id.xxx) みたいに書くわけです。

一向にイベントが飛んでこない。

試しに、ViewHolder内で、ボタンに対して、setListener的なことをすると、今度はダイジョブ。 ただ、クラスが変わってしまっているので、コンテキストの受け渡しが面倒になる。微妙すぎる。

ここでしばし、ハマりました。

Buttonがイベントを掴んでいる

同じようなことを ImageViewでやってみると、今度は無事にイベントが飛んできていて、うーむ。となっていたのですが、わかってしまえば簡単というか。。 Buttonがイベントを拾って、返しちゃってるっぽい。そういう感じなのね。

サンプル画面を作ろうとして、適当にUIパーツ選んでたのがよくなかったのか。。 気をつけよう。

Related Posts