我有一個可點擊的自定義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