0
我正在製作一個自定義按鈕,它被設計爲在內部處理onClick事件。這裏是我的實現的簡化版本:Android按鈕內部onClick動作
public class CustomButton extends Button implements View.OnClickListener {
public CustomButton(Context context) {
super(context);
setOnClickListener(this);
}
@Override
public void onClick(View v) {
setText("Clicked!");
}
}
上面的代碼沒有意外!問題是活動/片段/無論包含按鈕可能會調用setOnClickListener(View)
這將阻止按鈕內的onClick(View)
方法接收onClick事件,從而以不希望的方式更改我的按鈕的功能。我雖然關於覆蓋setOnClickListener(View)
拋出一個異常如果參數不是this
,但我不想阻止該按鈕有外部偵聽器,我只是想添加一個內部功能。
Button
哪一種方法,如果有的話,我可以重寫,以便在點擊按鈕時做額外的事情,而不會丟掉其他類監聽onClick事件的能力?基本上哪個方法在Button
發送OnClick
事件?
'Button'不派遣'OnClick'事件,系統會。 – Shark
按鈕必須以某種方式接收點擊事件,因爲它的外觀已更改。 – Helios
Button的可視部分接收到狀態改變,並且它在「android:state_pressed」狀態中自行繪製。但是這與'Button'的代碼無關,而是它的選擇器。 [隨意閱讀](http://developer.android.com/guide/topics/ui/controls/button.html),如果你已經沒有。 – Shark