2011-07-07 5 views
6

新しいproxy-onClickListenerをインストールするために、Viewオブジェクトの現在のonClickListenerと他の種類のリスナーを取得してから、その呼び出しを転送する必要があります元のリスナーに送信します。Androidビューオブジェクトの現在のonClickListenerを取得する

多くの感謝!!!

+1

学ぶことを願っています

、なぜ自分のプロキシonClickListenerあなたonClickListenerを作ってみませんか? – Otra

+0

[Androidビューの[getOnClickListener()]の重複可能性](http://stackoverflow.com/questions/11186960/getonclicklistener-in-android-views) –

答えて

1

あなたはちょっと創造的である必要があります!

サブクラスView.OnClickListener

abstract class ProxyAbleClickListener implements OnClickListener { 

    Runnable ProxyAction; 

    @Override 
    public void onClick(View arg0) { 
     if (ProxyAction != null) { 
      ProxyAction.run(); 
     } 
    } 

    public void setProxyAction(Runnable proxyAction) { 
     ProxyAction = proxyAction; 
    } 
} 

/* Somwhere in your code ! */ 

YourView view = new Button(context); 

view.setOnClickListener(new ProxyAbleClickListener() { 
    public void onClick(View arg0) { 
     // Insert onClick Code here 

     super.onClick(arg0); 
    } 

}); 

ProxyAbleClickListener listener = (ProxyAbleClickListener) view.getOnClickListener(); 
listener.setProxyAction(new Runnable() { 

    @Override 
    public void run() { 
     // Insert your proxy code here.. 

    } 
}); 

setOnClickListenerをオーバーライドし、getOnClickListnerにアクセスするためのリスナーへの参照を保持しますYourView同様にサブクラス化されたビューを持っていることを確認してください:

はちょうどこのような何かを..

私はこのコードを何らかの方法でテストしていません。あなたが行う必要のあるものの疑似コードとして扱います。私は、これはこの時点で、あなたにいくつかのこと:)

関連する問題