2

我正在尝试检查 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

4 回答 4

2

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

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

if (value.equals(password))
{
}
于 2013-10-13T08:54:17.663 回答
1

使用.equalsor.equalsIgnoreCase()比较字符串

Java 中 == 与 equals() 有什么区别?

 if (value.equals(password)){

还将 editText 的初始化移动到onCreate. 每次单击按钮时都无需初始化edittext

  text = (EditText)findViewById(R.id.editText1); // in onCreate

并声明EditText text为类成员

于 2013-10-13T08:51:09.263 回答
1

使用 equals() 函数

尝试

if( value.equals(password) ) {

}
于 2013-10-13T08:52:19.477 回答
0

这里

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

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

于 2013-10-13T09:05:40.270 回答