微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在if语句中将对象与用户输入进行比较

如何解决如何在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 举报,一经查实,本站将立刻删除。