Сравнение двух строк не работает в android

Вот мой код, 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, как показано выше, ничего не происходит, изображение не отображается.

Пожалуйста, помогите !! =)

Solutions Collecting From Web of "Сравнение двух строк не работает в android"

Используйте string1.equalsIgnoreCase("something) или .equals("Something");

С == (для строк) в java вы сравниваете, что они имеют одинаковую ссылку. Как и вы, это тест, если оба они являются объектами строк.

В java a == b используется для сравнения 2 ссылок, а не самих объектов.

Поэтому, если у вас есть две строки, которые вы хотите сравнить, используйте метод equals () для String. Например,

 boolean resultOfComparison=stringA.equals(stringB); 

использование

 entry_tag.equals(dangerous) 

Вы сравниваете фактические объекты String, а не их содержимое. В Java операторы не перегружены, поэтому == не может использоваться для сравнения строк.

В Java, если вы хотите сравнить строки, вам нужно использовать equals() :

 if (entry_tag.equals(dangerous)) { }