我有一个自定义的TextView,它是可点击的。为了根据点击更改其外观,它定义了自己的onClick处理程序。然而,如果我在活动中定义第二个onClick处理程序以基于按钮执行某些操作,则只会调用其中一个onClick函数。 onClick是一个void函数-是否有任何方法可以说我没有处理这个点击,请将其传递给其他onClick处理程序?
为了更清晰,以下是代码:
在扩展TextView的MyCheckButton内部,我有:
setOnClickListener( mClickListener );
private OnClickListener mClickListener = new OnClickListener() {
public void onClick(View v) {
toggle();
}
};
然而,当我将MyCheckButton包含在我的Activity中时,当它被点击时我需要执行一些操作,因此我会给它附加另一个OnClickListener:
MyCheckButton button= (MyCheckButtonButton) findViewById(R.id.cb);
button.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// do something in the app
}
});
通过两次调用 setOnClickListener 方法,似乎我正在替换原始监听器,因此不会调用更改外观的 toggle() 方法。如果该按钮已经使用 onClick 处理程序更改其外观,则当单击该按钮时,我应该如何在我的活动中执行某些操作?我以为我会简单地看到两个 OnClickListeners 都被调用。