Простое утверждение If - PullRequest
       18

Простое утверждение If

0 голосов
/ 13 февраля 2011

Я пытаюсь передать две переменные с одного экрана на другой.На предыдущем экране вы нажимаете кнопку 1 или 2, и она передает это значение.Он также передает значение 2 как правильное значение.Я знаю, что они оба работают, когда я вывожу каждую переменную на следующем экране.Вот кодЭто всегда выводит неправильно, хотя.

Intent i = getIntent();
Bundle b = i.getExtras();
String newText = b.getString("PICKED");
String correct = b.getString("CORRECT");
TextView titles = (TextView)findViewById(R.id.TextView01);
if(newText == correct){
titles.setText("Correct" + newText + " " + correct + "");
}
else{
    titles.setText("Wrong" + newText + " " + correct + "");
}

Ответы [ 3 ]

3 голосов
/ 13 февраля 2011

потому что вы не сравниваете строку.вы сравниваете, если оба указывают на один и тот же объект.

для сравнения строки используйте

if(nexText.equals(correct))
0 голосов
/ 13 февраля 2011

Вы не сравниваете строки таким образом, переписывайте код таким образом, чтобы все было сделано:

0 голосов
/ 13 февраля 2011
if(newText == correct)

Это всегда будет ложью. Для сравнения содержимого двух строк символ за символом используйте метод .equals:

if( newText.equals(correct) )

Использование == для объектов в Java означает, что вы сравниваете значения адреса памяти, хранящиеся в этих указателях / ссылках. Поскольку они являются разными объектами String, они никогда не будут иметь одинаковый адрес.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...