получить строку из EditText

login.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            if( username_text.getText().toString() == "admin" &&
                    pass_text.getText().toString() == "password"){

                startActivityForResult(i, ACTIVITY_CREATE);

            }else{
                Toast.makeText(gps_gui.this, "Your username or password is not correct! Please, insert again",
                        Toast.LENGTH_SHORT).show();
                clearEditText();
            }
        }

    });

Я пытаюсь проверить его, я обнаружил, что он не переходит в состояние if.

2 ответов


при использовании java вы должны сравнить строки, используя строку.метод Equals(string) метод. Сравнение == проверяет, равны ли значения объекта String, что, несомненно, не так. Попробуйте изменить пример на:

"admin".equals(username_text.getText().toString()) &&"password".equals(pass_text.getText().toString())

его также умно поставить статическую строку первой, если строковое значение проверяемого значения равно null.


используйте метод equals() класса String для сравнения строк. Следующие ссылки дадут вам более подробную информацию.

о equals (объект yourObj) метод (с учетом регистра)

equalsIgnoreCase (строка yourStringObject) можно использовать, если вы хотите, чтобы он не учитывал регистр!