2015-10-12 36 views
1

我有兩個編輯文本,我想禁用其中的一個,當我設置在other.I輸入使用TextWatcher象下面這樣:Android設備上編輯文本禁止使用時,另一個

 private class MyTextWatcher implements TextWatcher { 
    private View view; 
    public MyTextWatcher(View view) { 
     this.view=view; 
    } 

    @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) { 
    switch (view.getId()){ 
     case R.id.cin: 
      if(mEdCin.getText().toString()!=null){ 
      mEdPassport.setKeyListener(null); 
      mEdPassport.setFocusable(false); 
     } 
     else if(mEdCin.getText().toString()==null) { 
       mEdPassport.setFocusable(true); 
      } 
      break; 
     case R.id.passport: 

      if(mEdPassport.getText().toString()!=null){ 
      mEdCin.setKeyListener(null); 
      mEdCin.setFocusable(false); 
     } 
      break; 
    } 

    } 

但是當我清除編輯我正在使用的文本,其他仍然禁用。 我如何設置啓用,如果我清除第一個。

回答

1

檢查是否EditText值使用isEmpty()方法是空的,試試這樣

if(firstEditText.getText().toString().isEmpty()) { 
    secondEditText.setEnabled(true); 
    //... 
} else { 
    secondEditText.setEnabled(false);  
    //... 
} 
0

嘗試增加:

edittext.setFocusable(false); 
    edittext.setEnabled(false); 
    edittext.setClickable(false); 
+0

了我的知識edittext.setEnabled(假);對於期望的輸出是足夠的。確保在清除編輯文本值時調用afterTextChanged()方法 –

相關問題