我有三个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;
}
}
此代码会发生什么,我需要时间触摸开关。第一次禁用一个是检查的,第二次启用我检查的那个。
我应该更改上述代码,以便实现我想要的行为?或者这个用例还有其他选择吗? 感谢
答案 0 :(得分:1)
用于禁用开关使用此
mostViewedSwitch.setEnabled(false);
latestUpdatedSwitch.setEnabled(false);
不是
mostViewedSwitch.setChecked(false);
latestUpdatedSwitch.setChecked(false);
因为它不是复选框,它会切换。