2011-09-15 4 views
1

私は、既存のコードのすべてのクリックイベントにフックする比較的簡単な方法を探しています。クリックが発生するたびに、既に割り当てられているクリックイベントハンドラを実行してから、必要な処理を行う追加のクリックハンドラを実行します。基本的には、新しいOnClickListenerをそれを受け入れることのできるすべてに追加する簡単な方法が必要です。すべてのAndroidクリックイベントにフックするにはどうすればよいですか?

For each component c 
    add extra OnClickListener to c 
+0

私はこれを行う簡単な方法はないと思います。 – Falmarri

答えて

1

これらの種類のイベントに対して「余分な」リスナーという概念はありません。ウィジェットごとに1つしかありません。

1 + OnClickListener個のオブジェクトを保持し、すべてのクリックイベントを渡す独自のCompositeOnClickListenerを作成できます。しかし、ViewにはgetOnClickListener()メソッドがありませんので、ボード全体に適用する方法はありません。

したがって、@Falmarriが示しているように、私はこれが本当に可能であるとは思わない。

+0

これは私が聞くのを恐れていたものです。私は別の選択肢を検討しなければならないと思う。ありがとう。 –

+0

4年後、あなたはこの分野で進歩を遂げましたか?これに関して最近勢いがあるように見えます。http://reactivex.io/RxJava/javadoc/rx/plugins/RxJavaObservableExecutionHook.html – sirvon

+0

@sirvon:まあ、そこには "進路"はありませんウィジェットごとにイベントごとに1つのリスナーしか存在しません。反応的かどうかにかかわらず、誰かが複合リスナーを設定していることは確かです。 – CommonsWare

関連する問題