2017-06-20 18 views
0

メールのメールアドレスが一致しているかどうか、パスワードの長さが0より大きいかどうかを確認しようとしていますので、ブール値を使用して確認しましたが、ここに私のJavaコードだ値をtrueに変更することができませんでした:ブールの両方がfalseを返すブール値は常にfalseを返します

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 

ので、私はmEmail_Correct =真のだと思いtrueにブールの値を変更するにはどのような方法があります。うまく動作しません。

+0

ではなく、ボタンのクリックやタイプにパスワードの長さの電子メールの種類を確認あなたがこれを行うことができないメールアドレスとパスワードを入力した場合、ユーザーに応じて必要な作業を行う機能をトリガすることができますボタンクリック時の操作..? – ManishNegi

+0

私はこのメソッドをautoにする必要がありますので、ボタンクリックでは欲しくないので、実際にはinstagram loginアクティビティが必要です。 – 7uthaifah

+0

'mEmail_Correct'と' mPass_Correct'はあなたがそこにチェックを入れると常に 'false'になります。ユーザーがフィールドのいずれかに何かを入力した後で、それらをチェックする必要があります。コードはリスナーを実行し、すぐにチェックの残りのコードと一緒に進みます。これはあなたの問題だろうか? – instanceof

答えて

0

あなたは、彼が正しく

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 
    } 

} 
+1

こんにちは@Sam Kanafaniと私はどのように両方のブール値を比較することができます。 – 7uthaifah

+0

これは2つのブール値を意味しますか? –

+0

私はpasswordWrittenCorrectとemailWrittenCorrectの値を意味しています.2つの値がtrueかfalseかをチェックする必要があります。両方のブール値がtrueの場合はsignin btnがlight、そうでなければdarkです。 – 7uthaifah

関連する問題