我每次调用“updateScore()”方法时都会尝试更新我的分数,但由于某种原因它无效。
如果我第一次赢了,它会正确更新,如果我选择一个新游戏并获胜,它将不会更新分数,分数仍然是这样。
示例
第一场胜利---> (X)胜利:1
第二场胜利--->(X)胜利:1 ?????它应该是2
代码来源
public void updateScore() {
xWinnerTimes = 0;
oWinnerTimes = 0;
winnerBoardO = findViewById(R.id.winner_o);
winnerBoardX = findViewById(R.id.winner_x);
if (winner == 1){
xWinnerTimes++;
winnerBoardX.setText("(X) Wins: " + (xWinnerTimes));
}
if (winner ==2){
oWinnerTimes++;
winnerBoardO.setText("(O) Wins: " + (oWinnerTimes));
}
答案 0 :(得分:0)
您应该将xWinnerTimes = 0;
oWinnerTimes = 0;
置于全局并在updateScore()中将其删除;因为你总是把它重置为0。
答案 1 :(得分:0)
这是因为初始化和增量都在相同的范围内。 第一次它将显示正确的结果,但下一次值再次初始化为0。 尝试将该变量设为全局变量 在你的方法之外声明它们。
答案 2 :(得分:0)
在onCreate Method
中提及下面的代码xWinnerTimes = 0;
oWinnerTimes = 0;
winnerBoardO = findViewById(R.id.winner_o);
winnerBoardX = findViewById(R.id.winner_x);
xWinnerTimes和oWinnerTimes应该是全局变量。
并且据我所知,如果您在特定时间更新用户界面的分数,则必须在 runOnUiThread
updateScore()的方法>