AutocompleteTextView未启用

时间:2017-02-01 12:12:48

标签: android autocomplete textwatcher

我有一个奇怪的情况,其中一个AutocompleteTextView被启用,第二个不是什么。我编辑文本etSerial,如果它有一些值,那么编辑文本(etDesign)和自动完成textview atShade应该被禁用但当我清除etSerial的文本时,bES etDesign和atShade应该被启用。

atShade和etDesign被禁用,但是当从etSerial中清除文本时,只有etDesign被启用。

清除etSerial后在atShade点击没有任何反应(在etSerial中输入值之前它正确显示值)

我还添加了toast以查看它是否已启用,textview显示它已启用但我没有点击atShade光标

我的代码是:

private void initAutoText(final TextView tv) {
tv.addTextChangedListener(new TextWatcher() {

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

            if(tv == etSerial){
                if(etSerial.getText().toString().isEmpty()) {
                    atShade.setEnabled(true);
                    etDesign.setEnabled(true);
Toast.makeText(OrderBookingActivity.this,String.valueOf(atShade.isEnabled()),Toast.LENGTH_SHORT).show();
                }
            }
        }

        @Override
        public void afterTextChanged(Editable arg0) {

            if(tv == etSerial){
                if(!etSerial.getText().toString().isEmpty())
                etDesign.setEnabled(false);
                atShade.setEnabled(false);

            }
        }

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

1 个答案:

答案 0 :(得分:1)

问题在于ifTextChanged()方法中if块的范围。 请尝试以下代码:

@Override
    public void afterTextChanged(Editable arg0) {

        if(tv == etSerial){
            if(!etSerial.getText().toString().isEmpty()){
               etDesign.setEnabled(false);
               atShade.setEnabled(false);
            }
        }
    }