gpt4 book ai didi

java - 我需要帮助将 IF 语句方法更改为 Android Studio 中的 SWITCH case

转载 作者:行者123 更新时间:2023-12-02 01:19:11 25 4
gpt4 key购买 nike

我正在 Android Studio 上开发一个项目,并尝试创建一个过滤器。我向其中添加了一些Checkboxes,我想用它来过滤我的RecyclerView。使用 IF 语句我可以做到这一点,但据我了解,对于许多 IF-ELSE 语句,最好使用 SWITCH。因此我想将我的 IF 语句更改为 SWITCH case,但我不知道如何在 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 个 if 条件来检查所有这些可能的状态。但是,在您的情况下,按钮状态并不相互依赖,即您可以单独检查每个按钮状态并执行相应的逻辑。

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

  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.

关于java - 我需要帮助将 IF 语句方法更改为 Android Studio 中的 SWITCH case,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57637781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com