调试时的值相同,但if语句中的值不同

时间:2018-05-07 18:47:46

标签: java android if-statement radio-button

if语句有问题。两个值 - 字符串,一个在箭头中按类声明,另一个由radiobutton.gettext()声明。在debuging中我可以读取var的值。它们是相同的,但如果声明说它们是不同的。 你知道为什么会这样吗?

Debuger: https://imgur.com/a/NIdrQcf

获取 rbAnswer

private String mChoices [][] = {
    /* #8 */        {"razgovor između pomoraca u karanteni i njihovih obitelji", "za osobno razmatranje i razgovor s duhovnikom"," "," "},

}

...

public String getChoice1(int a) {
    String choice0 = mChoices[a][0];
    return choice0;
}


public String getChoice2(int a) {
    String choice1 = mChoices[a][1];
    return choice1;
}

...

rbGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        String rbAnswer;

        public void onCheckedChanged(RadioGroup group, int checkedId) {
            if (checkedId == R.id.radiobtn1)
                rbAnswer = "" + rb1.getText();
            else if (checkedId == R.id.radiobtn2)
                rbAnswer =  "" +  rb2.getText();
            else if (checkedId == R.id.radiobtn3)
                rbAnswer = "" + rb3.getText();
            else if (checkedId == R.id.radiobtn4)
                rbAnswer = "" + rb4.getText();

            tTEST.setText(rbAnswer);
            if (rbAnswer == mAnswer) {
                varScoreTrue = varScoreTrue + 1;
                updateScore(varScoreTrue);
                obavijestTocno();
                updateQuestion();

            } else {
                varScoreFlase = varScoreFlase + 1;
                updateScore(varScoreFlase);
                obavijestKrivo();
                updateQuestion();
            }



        }

    });

声明 mAnswer

private String mCorrectAnswers[] = {

            ...

        /* #8 */        "za osobno razmatranje i razgovor s duhovnikom",


            ...
}

...

public String getCorrectAnswer(int a) {
    String answer = mCorrectAnswers[a];
    return answer;
}

...

mAnswer = mQuestionLibrary.getCorrectAnswer(mQuestionNumber);

1 个答案:

答案 0 :(得分:1)

你做错了比较。

变化:

rbAnswer == mAnswer

rbAnswer.equals(mAnswer)