分享
三行代码  ›  专栏  ›  技术社区  ›  Tayla Brown

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

  •  0
  • Tayla Brown  · 技术社区  · 1 周前

    我创建了一个名为User的类,我调用它来获取用户名和密码。我认为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();
    
                }
    
    
    
            }
    
    });
    
    1 回复  |  直到 1 周前
        1
  •  0
  •   Jose Antonio Mendoza    1 周前

    静态值在应用程序使用时保持不变, 因此,每次创建对象的实例时,它都会获取一个新值

    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