Java android中的意图和确认错误
我有一个android活动,需要比较名称和密码是否正确,以便让用户使用intent进入下一个活动 但问题是,无论我把系统放在什么地方,都会进入下一个活动,所以有人能帮我吗?? 这是一个java错误,所以我需要帮助 secondActivity.javaJava android中的意图和确认错误,java,android-intent,if-statement,radio-button,Java,Android Intent,If Statement,Radio Button,我有一个android活动,需要比较名称和密码是否正确,以便让用户使用intent进入下一个活动 但问题是,无论我把系统放在什么地方,都会进入下一个活动,所以有人能帮我吗?? 这是一个java错误,所以我需要帮助 secondActivity.java 您是否在清单中声明了SignSActivity活动?您已经声明了这两个变量: String username = "georges"; String pass = "password"; 然后将它们传递给SignIn SignIn(userna
您是否在清单中声明了SignSActivity活动?您已经声明了这两个变量:
String username = "georges";
String pass = "password";
然后将它们传递给SignIn
SignIn(username, pass);
并将参数与相同的变量进行比较。很明显,他们是平等的
if (username2 == username && pass2 == pass)
您需要将用户输入的内容传递到sign
SignIn(username, pass);
顺便说一句,在比较字符串时,需要使用
equals()
,否则需要比较引用。该行应该是(尽管在上述情况下也是如此):
问题是您没有将用户输入的字符串与
用户名
和密码
进行比较。您的代码应该如下所示:
.....
String username;
String password;
String username1;
String password1;
EditText usertext;
EditText passtext;
.....
usertext = (EditText) findViewById(R.id.user);
passtext = (EditText) findViewById(R.id.pass);
username1 = usertext.getText().toString();
password1 = passtext.getText().toString();
.....
private void SignIn(String username2, String pass2) {
// TODO Auto-generated method stub
if (username2.equals(username) && pass2.equals(password)){
......
}
}
现在,您可以将username1
和password1
传递给您的SignIn
方法。i、 esign(用户名1,密码1)
然后您的SignIn
方法应进行如下字符串比较:
.....
String username;
String password;
String username1;
String password1;
EditText usertext;
EditText passtext;
.....
usertext = (EditText) findViewById(R.id.user);
passtext = (EditText) findViewById(R.id.pass);
username1 = usertext.getText().toString();
password1 = passtext.getText().toString();
.....
private void SignIn(String username2, String pass2) {
// TODO Auto-generated method stub
if (username2.equals(username) && pass2.equals(password)){
......
}
}
这是什么错误?请发布日志。当您比较字符串时,需要使用
equals
或者您比较引用:if(username2.equals(username)和&pass2.equals(pass))
我的意思是,如果在if语句中输入用户名和密码,则系统将允许用户通过。不要使用==
运算符比较字符串值。使用equals()
username2
始终等于username
,pass2
始终等于pass
,那么问题出在哪里呢?问题是,即使我更改为.equal(),系统在编辑框中输入的用户名和密码都允许用户通过;因为在上面的代码中,您从类中传递变量并与它们自己进行比较。