我正在尝试检查字符串值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();
}
答案 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
。每次按下按钮
text = (EditText)findViewById(R.id.editText1); // in onCreate
并将EditText text
声明为类成员
答案 2 :(得分:1)
使用equals()函数
尝试
if( value.equals(password) ) {
}
答案 3 :(得分:0)
看here
使用String.equals(String other)
函数比较字符串,而不是==
运算符。
该函数检查字符串的实际内容,==
运算符检查对象的引用是否相等。请注意,字符串常量通常是“实例化”,这样两个具有相同值的常量实际上可以与==
进行比较,但最好不要依赖它。