[英]Android string comparison
我试图在用户单击按钮时比较两个EditText。 但是,即使两个字符串不同,IF语句也会返回true。
final EditText email= (EditText)findViewById(R.id.txtEmail);
final EditText emailconf= (EditText)findViewById(R.id.txtEmailConf);
final EditText password = (EditText)findViewById(R.id.txtPassword1);
final EditText passconf = (EditText)findViewById(R.id.txtPasswordConf);
final String emailInput = email.getText().toString();
final String emailconfInput = emailconf.getText().toString();
final String passinput = password.getText().toString();
final String passconfinput = passconf.getText().toString();
//When our register button is pressed
btnRegister.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(emailInput.equalsIgnoreCase(emailconfInput)){
if(passinput.equalsIgnoreCase(passconfinput)){
new RegisterTask().execute();
}
else{
displayDialogue("Error", "Your password's do not match, please try again", "Re-input details");
}
}else{
displayDialogue("Error", "Your email's do not match, please try again", "Re-input details");
}
}
});
如果两者正确,则它将运行Asynctask(RegisterTask)
任何帮助都很好,谢谢
final String passinput = password.getText().toString();
final String passconfinput = passconf.getText().toString();
将此部分移到onClick()
以便仅从EditText
文本。 在onCreate()
它们都是空的,两个空字符串将匹配。
您确定在每种情况下它都是正确的吗? 除了equals方法之外,尝试compareTo方法也可以
我建议您对两个字段都进行清理,因为如果用户在字段的开头或结尾放置一个空格, equalsIgnoreCase
将返回false。
尝试使用trim()
类的方法,删除无效的字符,然后进行比较,这取决于您要检查的内容。
if(emailInput == emailconfInput){
如果您更改为不应该有问题...哦,我也不建议忽略密码检查的大小写。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.