Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

boolean resultOfComparison=stringA.equals(stringB);

Ответ 3

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

entry_tag.equals(dangerous)

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

Ответ 4

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

if (entry_tag.equals(dangerous)) {
}