如何解决如何在if语句中将对象与用户输入进行比较
我正在尝试将用户输入(用户名和密码)与用户对象(例如,user1,user5)进行比较,以查看它们是否匹配,如果匹配,则该用户将被定向到另一个活动,因为他们本来可以成功登录,否则将显示一条消息。 我创建了一个名为User的类,我通过调用该类来获取userName和密码。我认为,如果使用if语句可以使用.equal进行比较,但是无论输入是否正确,我尝试应用时都会显示详细信息不正确的消息。就像它完全忽略了除最后一个语句以外的所有if语句。谁能告诉我是否有更好的方法可以实现这一目标,或者我的代码中有错误吗?错误不会在任何地方显示。
用户类别:
public class User {
// Instance variables
static String userName;
static String password;
static String favColor;
// User constructor
public User(String initUserName,String initPassword,String initFavColor) {
userName = initUserName;
password = initPassword;
favColor = initFavColor;
}
// Getter method to return userName
public String getUserName(){
return userName;
}
public String getpassword(){
return password;
}
public String getFavColor(){
return favColor;
}
主要活动:
logInBt.setonClickListener(new View.OnClickListener() {
public void onClick(View view) {
User user1 = new User("Jason","Sword","Red");
User user2 = new User("Billy","Dinosaur","Blue");
User user3 = new User("Zack","Elephant","Black");
User user4 = new User("Trini","Tiger","Yellow");
User user5 = new User("Kimberly","Bird","Pink");
String userET = userEditText.getText().toString();
String userPassword = passwordEditText.getText().toString();
if(userET.equals(user1.getUserName()) & userPassword.equals(user1.getpassword())){
Intent i = new Intent(getApplicationContext(),MainMenu.class);
startActivity(i);
} else if(userET.equals(user2.getUserName()) && userPassword.equals(user2.getpassword())){
Intent i = new Intent(getApplicationContext(),MainMenu.class);
startActivity(i);
}else {
Toast.makeText(getApplicationContext(),"Incorrect details. Please try again",Toast.LENGTH_SHORT).show();
}
}
});
解决方法
对象的属性不能为静态类型, 在使用应用程序时保留静态值, 因此,每次创建该对象的实例时,它都会获取一个新值
解:public class User {
//Instance variables
private String userName;
private String password;
private String favColor;
// User constructor
public User(String userName,String password,String favColor) {
this.userName = userName;
this.password = password;
this.favColor = favColor;
}
// Getter method to return userName
public String getUserName(){
return userName;
}
public String getPassword(){
return password;
}
public String getFavColor(){
return favColor;
}
}
我建议您阅读有关static variables
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。