Android Eclipse Java сравнивает содержимое массива со строкой. Не работает? - PullRequest
1 голос
/ 22 октября 2011

Привет У меня есть массив, который хранится при проверке переключателей, чтобы при повторной загрузке настроек радио я мог установить соответствующий ему флажок.

Мой массив выглядит так:

   |0          |1         |2
----------------------------------
0  |Option1    |data      |false
----------------------------------
1  |Option2    |data      |true
----------------------------------
2  |Option3    |data      |false
----------------------------------
3  |Option4    |data      |false

и т. Д. *

Теперь интересующий меня индекс является истинным / ложным, так как он говорит мне, следует ли проверять этот переключатель.

Я прочитал эти значенияиз базы данных в массив.Это все работает нормально, и данные в массиве правильно.

По какой-то причине, когда я делаю сравнение, оно не совпадает с тем, что я вижу, правильно.

Вот чтоЯ делаю в цикле ...

String checked = myarray[i][2];

// This correctly outputs 'false', 'true', 'false' and 'false' as per the array above.            
Toast.makeText(DatabaseTestActivity.this, checked, Toast.LENGTH_LONG).show();

// Now when it gets here it fails to trigger the match for 'true'.
if (checked == "true") {
     active = i;
     Toast.makeText(DatabaseTestActivity.this, "Found Check", Toast.LENGTH_LONG).show();
}

Есть идеи о том, что я делаю неправильно?Это просто сравнение строк, или я так подумал ??

Ответы [ 2 ]

2 голосов
/ 22 октября 2011

Используйте String.equals() для сравнения строк.

if (checked.equals("true")) {

}
1 голос
/ 22 октября 2011

Вы должны сравнить, используя String#equals или String#equalsIgnoreCase:

checked.equals( "true" )

== сравнивает ссылки, а equals сравнивает содержимое строки.

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