我有一个AlertDialog
,需要为用户执行特定动作的密码。但是,当我尝试将密码与字符串进行比较以验证密码是否正确时,代码不会执行任何操作,也不会显示任何错误。当我尝试比较字符串的长度,代码完美的作品,并在执行该条件的代码,它也提示用户,如果EditText
是空的。
我想要代码做的是:if (password == "password" || "otherpassword"){ execute code }
这是我的方法,它可以通过测量密码的长度来工作:
public void redeem(View view) {
final EditText taskEditText = new EditText(this);
AlertDialog dialog = new AlertDialog.Builder(this)
.setTitle("Password")
.setView(taskEditText)
.setPositiveButton("Redeem", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
String password = taskEditText.getText().toString();
if (password.length() == 4) {
// Execute piece of code
} else if (password.isEmpty() == true) {
Toast.makeText(PostDetailActivity.this, "The password cannot be empty", Toast.LENGTH_LONG).show();
}
}
})
.setNegativeButton("Cancel", null)
.create();
dialog.show();
}
答案 0 :(得分:0)
您可以使用password.equals("password")
。
您的情况应该是:
if(password.equals("password") || password.equals("someOtherPassword")){
}
此外,为了避免/确保区分大小写的结果,可以将boolean
参数传递给equals()
函数。像"password".equals("PASSWORD",true)
那么它将返回false password!=PASSWORD
。同样,您可以使用"password".equals("PASSWORD",false)
,在这种情况下可以使用password==PASSWORD
[忽略大写字母或小写字母。]
另外,在else if
分支,就没有必要做else if(password.isEmpty() == true)
。 else if(password.isEmpty())
本身并做任务。