Android 布尔值总是返回false

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

我正在尝试检查我的电子邮件是否与电子邮件类型匹配,密码长度是否超过0,因此我使用布尔值进行检查,但这看起来很糟糕,我认为,因为它总是返回false,并且无法将值更改为true以下是我的java代码:

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将是亮的,如果不是,它将是暗的,你明白了吗,兄弟。为已故的兄弟感到抱歉,无论如何,谢谢。它工作得很好。