クリックイベントを設定するのはOnClickListenerをimplementsして(findViewById(R.id.hoge)).setOnClickListener(this);ってするのが王道ですが、たかが<a href>ってしたいだけだってなのに毎回こんな書き方するのも面倒です。
ということでもう少しだけ楽に、XML側でクリックイベントを設定することが出来ます。
ところがこのandroid:onClick、Viewで実装されているらしいのですが、ImageViewやButtonなどでは動くくせに何故かTextViewでは動作しません。
いざとなればテキストをLinearLayoutなどで囲ってそこにandroid:onClickを設定する方法などもありますが、ちょっとどうなのよそれって感じです。
でも実は簡単な解決法があって、
なんでデフォルトで効かないようになっているのかはよくわかりません。
ということでもう少しだけ楽に、XML側でクリックイベントを設定することが出来ます。
<ImageView android:id="@+id/hoge" android:src="@drawable/hoge" android:onClick="onClickHoge"></ImageView>とandroid:onClickを設定すると、そこをクリックしたときにonClickHoge(View)メソッドが呼ばれます。
ところがこのandroid:onClick、Viewで実装されているらしいのですが、ImageViewやButtonなどでは動くくせに何故かTextViewでは動作しません。
いざとなればテキストをLinearLayoutなどで囲ってそこにandroid:onClickを設定する方法などもありますが、ちょっとどうなのよそれって感じです。
でも実は簡単な解決法があって、
<TextView android:id="@+id/hoge" android:src="@drawable/hoge" android:clickable="true" android:onClick="onClickHoge"></TextView>とandroid:clickable="true"を入れるだけです。
なんでデフォルトで効かないようになっているのかはよくわかりません。
PR
トラックバック
トラックバックURL: