我有以下Android程序代码。即使我输入“admin”,它也不起作用,正确的答案。然后我干杯输入与==“admin”完全相同。但它仍然无法正常工作!有什么伎俩吗?请帮忙 !!非常感谢!!
EditText etPassword =(EditText) findViewById(R.id.etPassword);
String t_etPassword =etPassword.getText().toString();
// display the t_etPassword for checking since the "if" does not work
Toast.makeText(getApplicationContext(), "<<" +t_etPassword +">>", Toast.LENGTH_SHORT).show();
if (t_etPassword == "admin") {
Intent intent = new Intent(getBaseContext(), ContactListActivity.class);
startActivity(intent);
} else {
Toast.makeText(getApplicationContext(), "Un-Authorised Access !!", Toast.LENGTH_SHORT).sho();
}
}
});
答案 0 :(得分:3)
尝试使用'equals'代替'=='。
if ("admin".equals(t_etPassword)) {
说明:How do I compare strings in Java?
编辑:不要将文本移动到字符串变量,这是不必要的。 试试这个:
EditText etPassword =(EditText) findViewById(R.id.etPassword);
if ("yourpass".equals(etPassword)) {
Intent intent = new Intent(getBaseContext(), ContactListActivity.class);
startActivity(intent);
} else {
Toast.makeText(getApplicationContext(), "Un-Authorised Access !!", Toast.LENGTH_SHORT).sho();
}
}
});
答案 1 :(得分:1)
if (t_etPassword == "admin")
将上一行更改为
if (t_etPassword.equals("admin"))
现在你会得到正确答案
答案 2 :(得分:0)
请更改此行:
if (t_etPassword == "admin")
到
if (t_etPassword.equals("admin"))
答案 3 :(得分:0)
您应该使用.equals
代替:
if(t_etPassword.equals("admin"))
==
正在检查引用相等性,而.equals
用于比较值。