我比较2 EditText框的字符串时有一些问题。 这里是JAVA:JAVA(Android) - 比较两个字符串时,即使它们相同它返回false
public void signUpSubmit(View v){
ErrorBox.setText("");
String eAdd = EmailAddress.getText().toString();
String eAddConf = ConfirmEmail.getText().toString();
String pass = Password.getText().toString();
String passConf = ConfirmPassword.getText().toString();
String fName = FirstName.getText().toString();
String lName = LastName.getText().toString();
Boolean emailSame;
Boolean passSame;
Boolean emailEmpty;
Boolean passEmpty;
Boolean fNameEmpty;
Boolean lNameEmpty;
if(eAdd.equals(eAddConf)){
emailSame = true;
}else{
emailSame = false;
}
if(pass.equals(passConf)){
passSame = true;
}else{
passSame = false;
}
if(eAdd.equals("")){
emailEmpty = true;
}else{
emailEmpty = false;
}
if(pass.equals("")){
passEmpty = true;
}else{
passEmpty = false;
}
if(fName.equals("")){
fNameEmpty = true;
}else{
fNameEmpty = false;
}
if(lName.equals("")){
lNameEmpty = true;
}else{
lNameEmpty = false;
}
Boolean noErrors;
String ErrorCode = null;
if(emailEmpty==true){
noErrors=false;
ErrorCode = "Email is Empty";
}else if(fNameEmpty==true){
noErrors=false;
ErrorCode = "First name is Empty";
}else if(lNameEmpty==true){
noErrors=false;
ErrorCode = "Last Name is Empty";
}else if(passEmpty==true){
noErrors=false;
ErrorCode = "Password is Empty";
}else if(emailSame==true){
noErrors=false;
ErrorCode = "Emails Don't Match";
}else if(passSame==true){
noErrors=false;
ErrorCode = "Passwords Don't Match";
}else{
noErrors=true;
}
if (noErrors==false){
ErrorBox.setText(ErrorCode);
}else{
String signUpStatus = signUpHttp(eAdd, pass, fName, lName);
if (signUpStatus.equals("Error")){
ErrorBox.setText("Server Down, Please Try Again Later");
}else if (signUpStatus.equals("False")){
ErrorBox.setText("That Email has already been used");
}else if (signUpStatus.equals("True")){
MainActUN.setText(eAdd);
MainActPW.setText(pass);
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
}
}
}
我确实有重复,如果在自己的函数语句,但我这样做是为了看它是否会解决我的问题,但它并没有任何帮助是极大的赞赏。
编辑----------------------------------
对不起,没有具体的,如果所有的文本框被填充,我得到的电子邮件不匹配,我已经删除了电子邮件测试,同样的事情发生,说密码不匹配,但其余与.equals(“”)是好的。
该冗余代码冗余且由于冗余而难以阅读。什么,具体不工作?他们都不工作? – nhgrif
事实上是多余的,为什么不具体说明哪两个编辑文本和代码中出现意外行为的地方。 – ChiefTwoPencils
如果...请删除所有这些!只需使用例如“emailSame = eAdd.equals(eAddConf);”这将使代码更容易阅读和理解! – isnot2bad