我正在开发一个应用程序,需要与 Android 4.0 以前的设备兼容。在 4.0 之前的布局中,我必须使用 ToggleButton,在 4.0 及之后则使用 Switch。就用户而言,两者的功能相同。当它们被点击时,应具有相同的行为。
我尝试编写一个 OnClickListener,使其适用于这两种按钮,以避免重复编写大量代码。Switch/ToggleButtons 在 Fragment 中使用,因此不能仅通过在布局中放置对 onClickListener 的调用来实现。
为了让 Switch 和 ToggleButton 都能够使用 onClickListener,我将其设置为 pushSelector,即:
我尝试编写一个 OnClickListener,使其适用于这两种按钮,以避免重复编写大量代码。Switch/ToggleButtons 在 Fragment 中使用,因此不能仅通过在布局中放置对 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
?