2016-03-25 3 views
0

У меня есть оператор if, который работает как вход в систему, поэтому он сравнивает ник и пропуск для пользователя. Проблема в том, что функция equals не работает или, по крайней мере, не так, как мне это нужно. Хотя отладка строки, поступающей с входа, правильная («c» из idTextInput и «1» из PassTextInput), но сравнение возвращает false каждый раз. Кто-нибудь может мне с этим помочь?Equals not comparison

btnJackIn.setOnClickListener(
    new Button.OnClickListener(){ 
     public void onClick(View v){ 
      EditText idTextInput = (EditText) findViewById(R.id.txtID); 
      EditText PassTextInput = (EditText) findViewById(R.id.txtPass); 

      if (idTextInput.getText().equals("c") && PassTextInput.getText().equals("1")) { 
       Intent characterPage = new Intent(getBaseContext(), MainCharacterPage.class); 
       characterPage.putExtra("id", idTextInput.getText()); 
       characterPage.putExtra("pass", PassTextInput.getText()); 
       MainActivity.this.startActivity(characterPage); 

      } 
     } 
    } 
); 
+1

есть 'c', набитый столицей 'C', возможно? Я считаю, что это стандартный для первого символа EditText – 0xDEADC0DE

+0

Стилизованный язык и немного смятый код. Лучше всего следить за ними на мобильных устройствах, когда он не имеет слишком большого отрезка. –

ответ

0

Попробуйте это ...

idTextInput.getText().toString().equalsIgnoreCase("c") && PassTextInput.getText().toString().equalsIgnoreCase("1") 

Он также будет заботиться о чувствительных к регистру.

1

EditText.getText() возвращает Editable объект, а не строка. Попробуйте вместо этого:

idTextInput.getText().toString().equals("c") && PassTextInput.getText().toString().equals("1") 
+0

вот в чем проблема! спасибо, я знал, что это просто хаха –

-2

я когда-то была огромная проблема с & & заявления, я хотел бы попробовать сравнить код, используя его, но он всегда приводил меня заблудших.

Ex;

if(!FAnswer3.equals(NotConf && Confirm)){ 
    System.out.println("\nSorry, that's not a valid command. Try again!"); 
    continue; 
} 

Этот код не работает, потому что я использую неправильно сравнения вещь (& &) вместо этого, я должен был бы использовать! = Потому что это означает: «Если это не так, что либо» в Это дело. Проверьте код на предмет каких-либо изменений в сравнении doodads и whathaveyous (возможно, изменение & & на == может исправить его) и вернуться снова, если он все еще не работает.

+0

* Мне нужно будет использовать! = потому что это означает «Если это не так», в этом случае. * - это неверно. Также я не знаю, откуда у вас это &&, что не имеет никакого отношения к сравнению объектов –