我有一个可点击的自定义TextView。它定义了自己的onClick处理程序,以便根据点击更改其外观。但是,如果我然后在我的活动中定义第二个onClick处理程序,以便基于点击按钮执行某些操作,则只会调用一个onClick函数。 onClick是一个无效函数 - 有什么方法可以说我没有处理这个点击,请将它传递给其他onClick处理程序?Android - 两个onClick听众和一个按钮
更清楚这里是代码:
内MyCheckButton延伸的TextView我:
setOnClickListener(mClickListener);
private OnClickListener mClickListener = new OnClickListener() {
public void onClick(View v) {
toggle();
}
};
但是我包括MyCheckButton到我的活动,当然我需要的时候做一些它点击所以我将另一个OnClickListener它:
MyCheckButton button= (MyCheckButtonButton) findViewById(R.id.cb);
button.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// do something in the app
}
});
通过调用setOnClickListener两次看来,我取代了原来的侦听器,TOG从不调用改变外观的gle()。如果已经使用onClick处理程序更改其外观,那么在单击此按钮时如何在我的活动中执行某些操作?我想我只会看到两个OnClickListeners被调用。
是的我认为你是对的,你也可以尝试在你的xml文件中给它一个onClick属性,并在设置onClickListener之后查看它是否仍然会调用你的方法。 – schwiz 2011-01-06 20:39:51
我猜这不是一个事件冒泡问题,我的问题是你不能将两个OnClickListeners添加到相同的视图?这是其他地方的标准做法,所以我很困惑。 – Mark 2011-01-06 20:41:23
如果我使用xml onClick,setOnClickListener将覆盖它。 – Mark 2011-01-06 20:49:27