首页 > 解决方案 > 如何将对象调用到 if 语句

问题描述

我在下面创建了一个名为“用户”的类,现在在我的主活动中,我试图调用类中的对象来检查用户输入的输入是否正确并与用户对象匹配,如果正确,那么我希望它移动到下一个屏幕。但是当我打开应用程序并输入 user1 正确的详细信息并单击登录按钮时,没有任何反应。我的代码有问题吗?不会出现任何错误来帮助我检测问题所在。下面是我的用户类和主要活动的代码。

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;

}
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);

            }

        }

    });

标签: android-studioclassobjectmethodsconstructor

解决方案


在您的 if 语句中,您将 userET 与 (user2.getUserName() + "True" or "False") 进行比较

检查这个并对其他人做同样的事情

if(userET.equals(user1.getUserName()) && userPassword.equals(user1.getPassword()))

您不显示任何 Toast 的原因是因为您忘记了 .show()

Toast.makeText(getApplicationContext(), "Incorrect details, Please try again", Toast.LENGTH_SHORT).show();

我建议您使用 Log.d 以获得更好的调试体验 :)


推荐阅读