Проблемы с преобразованием редактируемой строки (проверка имени пользователя / пароля) - PullRequest
1 голос
/ 24 января 2012

Я пытаюсь создать простой логин / пароль для входа в систему.У меня есть готовый макет, и сейчас я пытаюсь установить его так, когда имя пользователя (EditText) == "crete", то оно должно что-то делать.Вот мой код ...:

public class Login extends Activity {
   public static EditText username, password;
   public Button loginbutton;
   boolean accessgranted;
   public String dbu, dbp, user1;

   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.login);

       username = (EditText) this.findViewById(R.id.username);
       password = (EditText) this.findViewById(R.id.password);        
       loginbutton = (Button) this.findViewById(R.id.loginbutton);

       user1 = "crete";

       loginbutton.setOnClickListener(new View.OnClickListener() {
         public void onClick(View v) {
            try{
               dbu = (username.getText()).toString();
            }
            finally{
               if (dbu == user1){
                   username.setText("SUCCESS");
               }
            }
         }
       });
    }
}   

это, к сожалению, не работает.Он корректно преобразует его в строку (я думаю), потому что когда я тестировал этот код:

 loginbutton.setOnClickListener(new View.OnClickListener() {
     public void onClick(View v) {
        try{
              dbu = (username.getText()).toString();
        }
        finally{
                username.setText("done" + dbu);
            }
        }

     }
});

Он правильно вводит то, что вы ввели в EditText, плюс слово "done".

Кажется, проблема в создании операторов if-then ??

Ответы [ 3 ]

4 голосов
/ 24 января 2012

Вы проверяете на String равенство с помощью метода .equals("String").

С == вы проверяете, равны ли ссылки на объекты.

3 голосов
/ 24 января 2012

Попробуйте использовать equalsIgnoreCase(String) вместо == компаратора.

Как это: dbu.equalsIgnoreCase(user1)

1 голос
/ 24 января 2012

dub и user1 - два отдельных объекта String.Вы сравниваете их так: dbu == user1.Это всегда вернет false.Вместо этого замените его на dbu.equals(user1).

...