0

我想激活名为 tglBtnLevel1、tglBtnLevel2、tglBtnLevel3... 的禁用按钮,从 1 到使用方法收到的整数。

我实现它的唯一方法是使用 switch case,但我想必须有一种使用循环的方法。我尝试了一个 For 循环,但我找不到将计数器 (i) 包含在“tglBtnLevel(i).setEnabled(true)”行中的方法。

我会感谢你的任何提示或帮助。这是我用来使它工作的开关盒的开始,但只有第一个按钮,还有更多:

private void checkEnabledLevels(){
        switch (d.sendPlayerStats().getWeekTournamentLevel()){
            case 1:
                tglBtnLevel1.setEnabled(true);
                break;
            case 2:
                tglBtnLevel1.setEnabled(true);
                tglBtnLevel2.setEnabled(true);
                break;
            case 3:
                glBtnLevel1.setEnabled(true);
                tglBtnLevel2.setEnabled(true);
                tglBtnLevel3.setEnabled(true);
                break;
            case 4:
                glBtnLevel1.setEnabled(true);
                tglBtnLevel2.setEnabled(true);
                tglBtnLevel3.setEnabled(true);
                tglBtnLevel4.setEnabled(true);
                break;
4

1 回答 1

1

一种方法是将所有按钮放在一个数组中,如下所示:

Button[] buttonArray = {tglBtnLevel1, tglBtnLevel2, tglBtnLevel3, tglBtnLevel4}

然后根据您获得的锦标赛级别简单地迭代它们:

int tournamentLevel = d.sendPlayerStats().getWeekTournamentLevel()
for (int i = 0; i < tournamentLevel; i++) {
  buttonArray[i].setEnabled(true);
}

一种稍微不同但简单的方法可能是:

int tournamentLevel = d.sendPlayerStats().getWeekTournamentLevel()
tglBtnLevel1.setEnabled(tournamentLevel <= 1);
tglBtnLevel2.setEnabled(tournamentLevel <= 2);
tglBtnLevel3.setEnabled(tournamentLevel <= 3);
tglBtnLevel4.setEnabled(tournamentLevel <= 4);
于 2021-07-23T11:01:23.327 回答