启用时禁用所有其他开关

时间:2016-04-07 08:54:46

标签: android

我有三个Switches。我想要的是当我点击另外两个被禁用时。

我所做的是为每一个设置setCheckedListener,当我检查一个时,我将其他两个的检查状态设置为false。

代码是:

    @Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
    switch (compoundButton.getId()) {
        case R.id.switch_most_popular:
            mostViewedSwitch.setChecked(false);
            latestUpdatedSwitch.setChecked(false);
            break;
        case R.id.switch_most_viewed:
            mostPopularSwitch.setChecked(false);
            latestUpdatedSwitch.setChecked(false);
            break;
        case R.id.switch_latest_updated:
            mostPopularSwitch.setChecked(false);
            mostViewedSwitch.setChecked(false);
            break;
        default:
            Log.i(TAG, "no checked Switch ");
            break;
    }
}

此代码会发生什么,我需要时间触摸开关。第一次禁用一个是检查的,第二次启用我检查的那个。

我应该更改上述代码,以便实现我想要的行为?或者这个用例还有其他选择吗? 感谢

1 个答案:

答案 0 :(得分:1)

用于禁用开关使用此

mostViewedSwitch.setEnabled(false);
latestUpdatedSwitch.setEnabled(false);

不是

mostViewedSwitch.setChecked(false);
latestUpdatedSwitch.setChecked(false);

因为它不是复选框,它会切换。