Android编辑文本在使用其他时禁用

时间:2015-10-12 09:41:01

标签: android android-edittext

我有两个编辑文本,我想在另一个中设置输入时禁用其中一个。我使用TextWatcher,如下所示:

     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;
    }

    }

但是当我清除我正在使用的编辑文本时,另一个仍然禁用。 如果我清除了第一个,我怎么设置它。

2 个答案:

答案 0 :(得分:1)

使用EditText方法检查isEmpty()值是否为空,请按此尝试

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

答案 1 :(得分:0)

尝试添加:

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