如何使用FOR循环激活按钮?



我想激活被禁用的按钮tglBtnLevel1, tglBtnLevel2, tglBtnLevel3…从1到用方法接收到的整数。

他们唯一的方法我实现它是使用开关情况,但我想一定有一种方法使用循环。我已经尝试了For循环,但我找不到在"tglBtnLevel(I). setenabled (true)&"行中包含计数器(I)的方法。

我将感谢你的任何提示或帮助。这是我用来使它工作的开关箱的开始,但只有第一个按钮,还有更多:
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;

这样做的一种方法是将所有按钮放在一个数组这样的:

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);

最新更新