2016-04-27 14 views
1

私の問題は最初にEditTextの長さが10より大きく、次に2番目にEditTextが有効になり、2番目にEditTextの長さが8より大きい場合Buttonの後に問題が発生します。いずれか1つでこの問題を解決できます。EditTextの問題

public void loginPage(View v) { 
    editText = (EditText) findViewById(R.id.username); 
    editText1 = (EditText) findViewById(R.id.pasword); 
    username = editText.getText().toString(); 
    password = editText1.getText().toString(); 
    btn = (Button) findViewById(R.id.login1); 
    editText1.setEnabled(false); 
    btn.setEnabled(false); 
    editText.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.length() >= 10) { 
       editText1.setEnabled(true); 
       btn.setEnabled(false); 
      } 
     } 
    }); 
    editText1.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.length() >= 8) { 
       btn.setEnabled(true); 
      } 
     } 
    }); 
} 
+0

英語はわかりません。ごめんなさい。してください、言い直してください。 – pepan

+3

TextWatcherを追加して、10または8に到達する場所を確認する必要があります –

+0

2つ目のEditTextとボタンをユーザタイプで有効にするには、textWatcherを実装する必要があります。ユーザがボタンをクリックした後で有効にしたい場合、現在のコードをツアーしています。 –

答えて

5

等しいかまたは10よりも大きいワード

OnCreate()方法

editText.addTextChangedListener(new TextWatcher() { 

     @Override 
     public void afterTextChanged(Editable s) { 
     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, 
             int count, int after) { 
     } 

     @Override 
     public void onTextChanged(CharSequence s, int start, 
            int before, int count) { 
      if (s.length() >= 10) 
       editText1.setEnabled(true); 
      else 
       editText1.setEnabled(false); 
     } 
    }); 

及び8ワード

ペーストのためのボタンの中で、この方法を貼り付けるための使用、これをこの方法はOnCreate()方法

editText1.addTextChangedListener(new TextWatcher() { 

      @Override 
      public void afterTextChanged(Editable s) { 
      } 

      @Override 
      public void beforeTextChanged(CharSequence s, int start, 
              int count, int after) { 
      } 

      @Override 
      public void onTextChanged(CharSequence s, int start, 
             int before, int count) { 
       if (s.length() >= 8) 
        btn.setEnabled(true); 
       else 
        btn.setEnabled(false); 
      } 
     }); 

はあなたがEdit TextText Watcherを使用する必要が.........

+0

私はコードを表示するために@ sushil kumarを表示しないようにします。 – AnilkumarJohn

+0

@AnilkumarJohn答えを編集してください。 – sushildlh

+0

@sushilkumar – AnilkumarJohn

2

をコーディング楽しみます。

Try this code.

public class Login extends AppCompatActivity { 

    EditText editText, editText1; 
    Button btn; 
    String username, password; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.login); 

     loginPage(); 
    } 

    public void loginPage() 

    { 

     editText = (EditText) findViewById(R.id.username); 
     editText1 = (EditText) findViewById(R.id.password); 
     username = editText.getText().toString(); 
     password = editText1.getText().toString(); 
     btn = (Button) findViewById(R.id.login1); 
     editText1.setEnabled(false); 
     btn.setEnabled(false); 
     editText.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.length() >= 10) { 
        editText1.setEnabled(true); 
        btn.setEnabled(false); 
       } 
      } 
     }); 
     editText1.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.length() >= 8) { 
        btn.setEnabled(true); 
       } 
      } 
     }); 
    } 
} 

EDIT:

Create new function to Change from Login page on Button Click.

public void changeLoginPage(){ 
    Intent intentNew = new Intent(First.this,Destinatin.this); 
    startActivity(intentNew); 
} 

onCreate方法でこれを追加します。

btn.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     changeLoginPage(); 
    } 
}); 
+0

loginpage(View v)は私のonClick()メソッドです.its notits workng – AnilkumarJohn

+0

@AnilkumarJohn 'loginpage(View v)'から '(View v)'を削除します。上記のコードは 'loginPage();'呼び出しのみです。 –

+0

@AnilkumarJohn 'Button Click'で何をする必要がありますか? –

関連する問題