2013-02-04 38 views
-2

我對android編程相當陌生,我有以下情況: 我想要兩個editText字段,如果用戶在第一個字段中輸入數據,它會禁用其他字段,這意味着它仍然可見但不可由用戶編輯。當數據輸入到EditText中時禁用EditText 2

我確定有一個簡單的方法可以做到這一點,但我一直無法找到它。

謝謝你的幫助,讓我知道如果我錯過任何具體細節, 優雅

+1

[你嘗試過什麼?](http://mattgemmell.com/2008/12/08/what-have-you-tried/)是非常重要的,你嘗試的東西,你尋求幫助之前,或你可能永遠不會學習成爲一個自給自足的編碼器。 – Eric

回答

0

使用EditText.addTextChangedListener檢測用戶輸入的數據。
使用EditText.setEnabled(false)禁用您的第二個EditText。

editText.addTextChangedListener(new TextWatcher() { 

      @Override 
      public void onTextChanged(CharSequence s, int start, int before, 
        int count) { 


      } 

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


      } 

      @Override 
      public void afterTextChanged(Editable s) { 
       disableEditTExt.setEnabled(false); 
      } 
     }); 

希望這會幫助你去。

+0

這個效果很好,但是它並沒有告訴用戶文本框是不可用的,是否有內置的方式讓它在場外變灰,還是必須有覆蓋圖出現? – Classtronaut

+0

通常設置setEnabled(false)應該使您的視圖灰顯。你正在測試哪種設備?您可以添加setFocusable(false)和setClickable(false)以釋放焦點。 –

0
firstEditText.addTextChangedListener(new TextWatcher() { 

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

      } 

      @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 
       secondEditTExt.setEnabled(false); 
      } 
     });