Android 布尔值总是返回false
我正在尝试检查我的电子邮件是否与电子邮件类型匹配,密码长度是否超过0,因此我使用布尔值进行检查,但这看起来很糟糕,我认为,因为它总是返回false,并且无法将值更改为true以下是我的java代码:Android 布尔值总是返回false,android,android-edittext,boolean,Android,Android Edittext,Boolean,我正在尝试检查我的电子邮件是否与电子邮件类型匹配,密码长度是否超过0,因此我使用布尔值进行检查,但这看起来很糟糕,我认为,因为它总是返回false,并且无法将值更改为true以下是我的java代码: private boolean mEmail_Correct = false; private boolean mPass_Correct = false; mEmail.addTextChangedListener(new TextWatcher() { @Override pu
private boolean mEmail_Correct = false;
private boolean mPass_Correct = false;
mEmail.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}
@Override
public void afterTextChanged(Editable s) {
if (android.util.Patterns.EMAIL_ADDRESS.matcher(s.toString()).matches()){mEmail_Correct = true;}
else {mEmail_Correct = false;}}});
mPassword.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}
@Override
public void afterTextChanged(Editable s) {
if (s.lenght>0){mPass_Correct = true;}
else {mPass_Correct = false;}}});
if (mEmail_Correct && mPass_Correct){}//I need to make sign in btn light
else {}//I need to make sign in btn dim/faint
//But nothing happen so what can i use instead of private booleans
两个布尔值都返回false,那么有没有办法将布尔值改为true,我认为mEmail_Correct=true;工作不正常。如果用户正确输入电子邮件和密码,您可以触发一个功能,根据用户的不同来完成您想要的工作
private boolean mEmail_Correct = false;
private boolean mPass_Correct = false;
mEmail.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}
@Override
public void afterTextChanged(Editable s) {
if (android.util.Patterns.EMAIL_ADDRESS.matcher(s.toString()).matches()){emailWrittenCorrect(true);}
else {emailWrittenCorrect(false);}}});
mPassword.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}
@Override
public void afterTextChanged(Editable s) {
if (s.lenght>0){passwordWrittenCorrect(true);}
else {passwordWrittenCorrect(false);}}});
private passwordWrittenCorrect(boolean x){
passwordEmailCheck(null,x);
}
private void emailWrittenCorrect(boolean x){
passwordEmailCheck(x,null);
}
private passwordEmailCheck(boolean emailStat, boolean passwordStat){
if(emailStat!=null){
mEmail_Correct = emailStat;
}
if(passwordStat!=null){
mPass_Correct = passwordStat
}
if(emailStat && passwordStat){
//show button
}
}
而是在按钮单击时检查密码长度电子邮件类型并键入。您不能在按钮单击时执行此操作吗?我需要此方法自动执行,因此我不希望在按钮单击时使用此方法。我需要它,就像instagram登录活动一样。
mEmail\u Correct
和mPass\u Correct
如果您在那里进行检查,它们将始终为false
。用户在其中一个字段中输入内容后,您需要检查它们。代码执行侦听器,然后立即继续执行代码的其余部分,这是您的检查。这可能是你的问题吗?嘿@Sami Kanafani,我如何比较这两个布尔值。你指的是哪两个布尔值?我指的是PasswordWritenCorrect和EmailWritenCorrect值,我需要检查这两个值是真布尔值还是假布尔值,如果这两个布尔值都是真的,那么signin btn将是亮的,如果不是,它将是暗的,你明白了吗,兄弟。为已故的兄弟感到抱歉,无论如何,谢谢。它工作得很好。