Java Android前端未正确解析字符串
所以,这是我的Android MainActivity,但具体来说是以下代码:Java Android前端未正确解析字符串,java,android,Java,Android,所以,这是我的Android MainActivity,但具体来说是以下代码: public void checkUser(View view) { // Next Activity to move on to Intent intentSuccess = new Intent(this, Home.class); Intent intentFail = new Intent(this, LoginFailActivity.class); EditText us
public void checkUser(View view) {
// Next Activity to move on to
Intent intentSuccess = new Intent(this, Home.class);
Intent intentFail = new Intent(this, LoginFailActivity.class);
EditText usernameText = (EditText) findViewById(R.id.user_field);
String username = usernameText.getText().toString();
EditText passwordText = (EditText) findViewById(R.id.pword_field);
String password = passwordText.getText().toString();
if (username == "admin" && password == "password") {
startActivity(intentSuccess);
} else {
startActivity(intentFail);
}
}
即使我输入“admin”和“password”,每次都会转到intentFail。我已经检查了一个测试活动,它正确地将字符串传递给它,没有问题
请帮助我,提前谢谢你 我想说问题就在这里
if (username == "admin" && password == "password")
应该是
if (username.equals("admin") && password.equals("password"))
Java将字符串视为对象,而不是字符数组
根据评论
应该是
if (username.equals("admin") && password.equals("password") {
startActivity(intentSuccess);
} else {
startActivity(intentFail);
}
使用String equals方法比较字符串,而不是==。阅读本文:为了澄清,使用
=
测试两个字符串是否引用了堆上的同一个对象,而equals()
测试字符串中每个字符是否相等。他说的话我在争论我的char数组注释是否会影响解释。
if (username.equals("admin") && password.equals("password") {
startActivity(intentSuccess);
} else {
startActivity(intentFail);
}