2014-03-06 41 views
1

我試圖讓edittext_2不可編輯,如果edittext_1是空的,但如果edittext_1不爲空我想edittext_2可編輯。安卓:讓EditText上不可編輯,然後使其恢復編輯再次

我試過這段代碼:

if (edittext_1.getText().toString().equals("")) 
{ 
    edittext_2.setEnabled(false); 
} 
else 
{ 
    edittext_2.setEnabled(true); 
} 

在開始時,代碼工作正常,這讓edittext_2不可編輯的,但是當我在edittext_1輸入一個值,edittext_2仍然無法編輯。

+0

你在哪裏使用這種情況,我的意思是在onC reate方法或在按鈕點擊等... – InnocentKiller

回答

3

您需要在TextWatcher()添加edittext_1

試試這個

edittext_1.addTextChangedListener(new TextWatcher() { 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, 
       int count) { 
      // TODO Auto-generated method stub 
      if (s.toString().equals("")) { 
       edittext_2.setEnabled(false); 
      } else { 
       edittext_2.setEnabled(true); 

      } 
     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, 
       int after) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void afterTextChanged(Editable s) { 
      // TODO Auto-generated method stub 

     } 
    }); 
+0

謝謝男人多數民衆贊成我所尋找的。 – user2749139

0

使用此。

if (edittext_1.getText().equalsIgnoreCase("")) 
{ 
    edittext_2.setEnabled(false); 
    edittext_2.setFocusable(false); 

} 
else 
{ 
edittext_2.setEnabled(true); 
edittext_2.setFocusable(true); 

} 
+0

它沒有工作:( – user2749139

0

試試這個

editText2.setEnabled(false); 
    editText1.addTextChangedListener(new TextWatcher() { 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, 
       int count) { 
      if (!editText1.getText().toString().equals("")) { 
       editText2.setEnabled(true); 
      } else { 
       editText2.setEnabled(false); 
      } 
     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, 
       int after) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void afterTextChanged(Editable s) { 
      // TODO Auto-generated method stub 

     } 
    }); 
0

什麼你已經初始化將首次工作,但是當你在edittext_1一些變化,你應該重新啓用edittext_2。新增的以下代碼也

edittext_1.addTextChangedListener(new TextWatcher() { 

       public void afterTextChanged(Editable s) { 

       if (edittext_1.getText().toString().equals("")) 
       { 
        edittext_2.setEnabled(false); 
       } 
       else 
       { 
       edittext_2.setEnabled(true); 

       } 
       } 

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

      public void onTextChanged(CharSequence s, int start, int before, int count) {} 
     });