Ошибка в операторе if - PullRequest
       5

Ошибка в операторе if

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

У меня есть приложение для Android. в этом я сравниваю две строки из EditTest, но я получаю некоторые странные результаты ...

if(v==findViewById(R.id.submit)){
            //

            if(email==crfm_email)
            {

                String warn="Done!";
                Toast toast = Toast.makeText(getBaseContext(), warn, Toast.LENGTH_LONG);
                toast.show();
            }
            else
            {
                oFN=(EditText)findViewById(R.id.owners_first_name);
                String warn="email addresses do not match "+eMail+" "+crfEmail;
                Toast toast = Toast.makeText(getBaseContext(), warn, Toast.LENGTH_LONG);
                toast.show();

            }

        } 

проблема в том, что элемент управления всегда переходит к остальной части, даже если ввод для обеих переменных одинаков Я знаю, что это простая ошибка, но я не могу ее исправить ...!

Ответы [ 4 ]

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

Используйте:

if (email.equals(crfm_email))
{
    ....

для сравнения строк.Дело в том, что вы хотите сравнить содержимое String s, а не ссылки на String объекты.

2 голосов
/ 04 февраля 2011

Попробуйте:

email.equals(crfm_email)

== в Java сравнивает, если это один и тот же экземпляр строки, не если содержимое строки одинаковы

2 голосов
/ 04 февраля 2011

Похоже, вы сравниваете объект вместо сравнения.

if(email==crfm_email)

Вероятно, должно быть ...

if(email.equals(crfm_email))
0 голосов
/ 04 февраля 2011

Думаю, вас может заинтересовать следующий вопрос: Java Gotcha's .

Главный соперник использует == вместо equals:)

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