我正在開發一款應用程序,該應用程序需要與Android 4.0之前的設備兼容。是否有可能創建一個OnClickListener來處理ToggleButton和Switch
在pre 4.0版本中,我必須使用ToggleButton
,並且在4.0後使用Switch
。就用戶而言,它們的功能相同。當他們被點擊時,他們應該有相同的行爲。
我想寫一個OnClickListener
,它們都可以工作,這樣我就不會複製大量的代碼。在Fragment
內部使用Switch
/ToggleButtons
,因此只需將編號爲onClickListener
的呼叫置於佈局中即可。
在努力嘗試,同時爲Switch
和ToggleButton
,我設置了onClickListener
到pushSelector,那就是:
private View.OnClickListener pushSelector = new View.OnClickListener() {
@Override
public void onClick(View v) {
if (((ToggleButton) v).isChecked() || ((Switch) v).isChecked()) {
// code
} else {
// code
}
}
};
毫不奇怪,這沒有工作,但我想我給它一去不復返。
是否可以有一個單獨的onClickListener
可以同時處理ToggleButton
和Switch
,或者我需要爲每個單獨設置一個onClickListener
?
使用開關的情況下將其與isinstanceof() –
不是一個很好的做法,但你可以做比較來檢查選擇的視它通過實現ToggleButton的點擊監聽器並務實地處理這些控件的狀態 –