我正在使用Android应用中的登录页面。
如您所知,应用程序必须检查用户名和密码是否有效,然后授予用户访问该应用程序的权限。
我使用了以下代码:
...
EditText un = (EditText) findViewById(R.id.username1);
EditText pw = (EditText) findViewById(R.id.password1);
String u = un.getText().toString();
String p = pw.getText().toString();
String myUser = "user1";
String myPass = "pass1";
//////// Now on the click of the Login Button:
public void onClickL (View view){
if ( (u == myUser) && (p == myPass)) /////// move to a new activity
else ///////Display a warning message: Try again
}
我在两个editText字段中输入了正确的字符串,但是我总是收到警告消息。 我不明白它有什么问题。
请帮忙:)
答案 0 :(得分:8)
您应该使用String类的equals()方法来比较字符串。 ==比较仅比较对象引用。
if (p.equals("Password")) {
//Do stuff
}
所以你应该改变:
if ((u.equals(myUser)) && (p.equals(myPass))) {
// do stuff
}
请点击此处查看有关此常见混淆主题的更多信息:How do I compare strings in Java?
答案 1 :(得分:0)
始终使用String.equals(string)
来比较字符串。 ==
将比较引用是否相等,哪些不符合您想要的字符串。
答案 2 :(得分:0)
==
将在这种情况下对字符串进行对象比较,虽然该值可能与String对象的值相同,但对象并不相同。因此我们使用String.equals(string);比较两个字符串对象的值。
所以
if(u.equals(string))
和p.equal(string)
可能就是你要找的东西。
答案 3 :(得分:0)
由于java没有一些现代功能,因此==不适用于字符串。相反,它有点复杂。
要检查两个字符串是否相等,请在if语句中输入:
String.equals(otherString)
要比较长度,请使用.length方法对它们进行比较,然后使用==。
感谢。