Bạn chỉ cần một chút sáng tạo!
Chỉ cần làm một cái gì đó như thế này:
Subclass các 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..
}
});
Hãy chắc chắn để có một cái nhìn subclassed Giống như YourView đó sẽ ghi đè các setOnClickListener và giữ một tài liệu tham khảo cho người nghe để truy cập với getOnClickListner ..
Tôi chưa thử nghiệm mã này theo bất kỳ cách nào, coi đó là mã giả cho những gì bạn cần làm.
Tôi hy vọng điều này sẽ giúp bạn tìm hiểu một số điều :)
Tại thời điểm này, tại sao bạn không chỉ bật onClickListener proxy của mình? – Otra
bản sao có thể có của [getOnClickListener() trong chế độ xem Android] (http://stackoverflow.com/questions/11186960/getonclicklistener-in-android-views) –