Ответ 1
Используйте string1.equalsIgnoreCase("something)
или .equals("Something");
С ==
(для строк) в java вы сравниваете, что они имеют одинаковую ссылку. Как и вы, это тест, если оба они являются объектами строк.
здесь мой код, Eclipse не показывает никаких ошибок, программа работает нормально, но просто не делает именно то, что я хочу:)
View image_view_danger_rate = (ImageView) findViewById(R.id.origin);
View image_view_origin = (ImageView) findViewById(R.id.danger_rate);
String entry_tag = (String) descriptionResultView.findViewById(resID).getTag();
String dangerous = "dangerous";
String not_dangerous = "not_dangerous";
if ( entry_tag == dangerous) {
image_view_danger_rate.setBackgroundResource(R.drawable.attention);
}else if ( entry_tag == not_dangerous) {
image_view_danger_rate.setBackgroundResource(R.drawable.its_ok);
image_view_origin.setBackgroundResource(R.drawable.artificial);
}
Приложение должно выбирать между двумя изображениями для всплывания на экране, в зависимости от тега, хранящегося в XML файле. Итак, если тег говорит "опасно", тогда следует показать "внимание" -изображение. Если тег говорит "not_dangerous", должен быть "its_ok" -изображение.
Теперь отображение изображений без сравнения if выполняется отлично.
Если я распечатываю теги в виде строки, она работает, она корректно печатает "опасные" или "не_данные", в зависимости от тега.
Но если есть if-сравнение, как показано выше, ничего не происходит, изображение не отображается.
Пожалуйста, помогите!! =)
Используйте string1.equalsIgnoreCase("something)
или .equals("Something");
С ==
(для строк) в java вы сравниваете, что они имеют одинаковую ссылку. Как и вы, это тест, если оба они являются объектами строк.
В java, a == b используется для сравнения двух ссылок, а не самих объектов.
поэтому, если у вас есть две строки, которые вы хотите сравнить, используйте метод equals() для String. например,
boolean resultOfComparison=stringA.equals(stringB);
Использование
entry_tag.equals(dangerous)
вы сравниваете фактические объекты String, а не их содержимое. В Java операторы не перегружены, поэтому == не может использоваться для сравнения строк.
В Java, если вы хотите сравнить строки, вам нужно использовать equals()
:
if (entry_tag.equals(dangerous)) {
}