问题描述
我有一个登录应用程序,该应用程序必须具有一个用户类,该对象中包含用户信息。但是现在我试图弄清楚如何将用户对象与用户输入的用户名和密码进行比较,看是否正确。因此,我需要查看例如用户是否在用户名txt中插入“ Jason”,在密码txt中插入“ Sword”,我需要查看是否正确并与用户类中的匹配。有人知道我会怎么做吗?任何帮助将不胜感激,我真的很受困扰。
public class User {
static String userName;
static String password;
static String favColor;
public User(String userName,String password,String favColor){
this.userName = userName;
this.password = password;
this.favColor = favColor;
}
public class UserGroup{
// Created user Objects for each user
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");
}
}
logInBt.setonClickListener(new View.OnClickListener() {
public void onClick(View view) {
String userET = userEditText.getText().toString();
String userPassword = passwordEditText.getText().toString();
UserGroup users = new UserGroup();
if (userET.equals(users.user1.userName)&& userPassword.equals(users.user1.password ){
// write here what you want user 1 to do after login
}else if (userET.equals(users.user2.userName)&& userPassword.equals(users.user2.password ){
// write here what you want user 2 to do after login
}
}
});
}
}
解决方法
您必须将用户Class字段设置为静态才能在任何地方访问它
或者您可以使用它的状态,而我将使用状态来不更改您的代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button logInBt = findViewById(R.id.buttonLogIn);
final EditText userEditText = findViewById(R.id.editTextTextPersonName);
final EditText passwordEditText = findViewById(R.id.editTextTextPassword);
logInBt.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
String userET = userEditText.getText().toString();
String userPassword = passwordEditText.getText().toString();
UserGroup users = new UserGroup();
if (userEt.equals(users.user1.userName)&& userPassword.equals(users.user1.password ){
// write here what you want user 1 to do after login
}else if (userEt.equals(users.user2.userName)&& userPassword.equals(users.user2.password ){
// write here what you want user 2 to do after login
}
}
});
如果要检查所有用户,请执行其他操作,您可以将其更改为用户列表以使其变得更容易