我是Android的新手,我的代码有问题。
当用户按下错误的块时,软件未显示"失败"。
当我调试代码时,它只运行 if 部分,而不是其他部分。我也想执行 else 条件,有什么建议吗?
private void buttonLogic(View v) {
List<Integer> tempList = new ArrayList<>();
for (int i = 0; 1 <= curLevel; i++) {
if(i!=12)
tempList.add(buttons.get(i));
else
break;
}
if (tempList.contains(v.getTag())) {
curGuess++;
checkWin();
} else {
lostGame();
}
}
private void lostGame () {
Toast.makeText(this, "Fail!", Toast.LENGTH_SHORT).show();
disableButtons();
b_new.setVisibility(View.VISIBLE);
}
首先,我真的希望curLevel已经在您粘贴的方法之外的某个地方声明/初始化。
继续前进...您的错误在于您的 for 循环参数。我猜你打算用"i"而不是"1"。语句1 <= curLevel
可能总是返回 true(如果 curLevel 为>= 1(,并且您的代码可能永远不会继续执行下一条指令。你的 for 循环应该是这样的:
for (int i = 0; i <= curLevel; i++) {
if(i!=12)
tempList.add(buttons.get(i));
else
break;
}
重新运行它,您的代码应该运行正常。我希望这有帮助..祝您编码愉快!
你的 if 条件有错误。 这是一个无限循环。
for (int i = 0; 1 <= curLevel; i++) {
对于大多数小于curLevel的情况,1,如果不是,curLevel将为0或1,因此"i"最多为0!
你想要什么?
我认为你必须用"i"而不是 1
for (int i = 0;i <= curLevel; i++) {