我需要帮助才能在 Android Studio 中将我的 IF 语句方法更改为 SWITCH 大小写



我正在Android Studio上做一个项目,我正在尝试创建一个过滤器。我添加了一些Checkboxes,我想用它过滤我的RecyclerView。有了IF语句,我可以做到,但据我所知,对于许多IF-ELSE语句最好使用SWITCH.因此,我想将我的IF语句更改为SWITCH大小写,但我不知道如何在Android Studio中实现此方法。

有代码:

btnApply.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(check_spring.isChecked() && check_summer.isChecked() && check_autumn.isChecked() && check_winter.isChecked()) {
addAllplaces();
} else if (check_spring.isChecked() && check_summer.isChecked() && check_autumn.isChecked()) {
removeAllplaces();
addSpring();
addSummer();
addAutumn();
removeWinter();
}

我想像这样使用:

@Override
public void onClick(View view) {
boolean checked = ((CheckBox) view).isChecked();
switch (view.getId()) {
case R.id.check_spring:
if (checked) {
removeAllplaces();
addSpring();
removeSummer();
removeAutumn();
removeWinter();
} else
addAllplaces();
removeSpring();
removeSummer();
removeAutumn();
removeWinter();
break;
}

您正在做的是检查按钮状态的所有可能组合。也就是说 2^4 = 16 个状态,所以你需要 16 个条件来检查所有这些可能的状态。但是,在您的情况下,按钮状态不相互依赖,即您可以单独检查每个按钮状态并执行相应的逻辑。

为什么不将逻辑更改为以下内容:

  1. 一开始,移除所有位置
  2. 对于每个按钮,如果选中,则添加其相应的地点/季节。

因此,代码可能如下所示:

removeAllPlaces();
if(check_spring.isChecked())
addSpring();
if(check_autumn.isChecked())
addAutumn();
if(check_winter.isChecked())
addWinter();
if(check_summer.isChecked())
addSummer();
// after the above code is executed, only the places for the checked buttons are added.

最新更新