无法检查字符串值

时间:2013-10-13 08:49:08

标签: java android if-statement

我正在尝试检查字符串值if if但它总是进入else, 这里有什么不对?谢谢

public void alertBtn(View v){
    EditText text = (EditText)findViewById(R.id.editText1);
    String value = text.getText().toString();
    String password="asd";
    if (value==password){

            new AlertDialog.Builder(this)
            .setTitle("Success")
            .setMessage("Correct Password")
            .setNeutralButton("OK", null)
            .show();
        }
    else
        new AlertDialog.Builder(this)
        .setTitle("Error")
        .setMessage("Wrong password")
        .setNeutralButton("OK", null)
        .show();



}

4 个答案:

答案 0 :(得分:2)

使用 == 运算符会比较字符串的引用而不是字符串本身。

String value = text.getText().toString();
String password="asd";

if (value.equals(password))
{
}

答案 1 :(得分:1)

使用.equals.equalsIgnoreCase()来比较字符串

What is the difference between == vs equals() in Java?

 if (value.equals(password)){

同时将editText的初始化移至onCreate。每次按下按钮

时都无需初始化edittext
  text = (EditText)findViewById(R.id.editText1); // in onCreate

并将EditText text声明为类成员

答案 2 :(得分:1)

使用equals()函数

尝试

if( value.equals(password) ) {

}

答案 3 :(得分:0)

here

使用String.equals(String other)函数比较字符串,而不是==运算符。

该函数检查字符串的实际内容,==运算符检查对象的引用是否相等。请注意,字符串常量通常是“实例化”,这样两个具有相同值的常量实际上可以与==进行比较,但最好不要依赖它。