每当我调用我的updateScore()方法时,它都不会更新分数?

时间:2018-03-01 03:37:33

标签: java android

我每次调用“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));
    }

3 个答案:

答案 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()的方法>