AutocompleteTextView 未启用

AutocompleteTextView is not Getting Enabled

我有一个奇怪的情况,其中一个 AutocompleteTextView 正在启用,而第二个无论如何都没有。我编辑文本 etSerial,如果它有一些价值,那么编辑文本 (etDesign) 和自动完成文本视图 atShade 应该被禁用但是当我清除 etSerial 的文本时,bothe 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) {
        }
    });
}

问题在于 afterTextChanged() 方法中的 if 块的范围。 试试下面的代码:

@Override
    public void afterTextChanged(Editable arg0) {

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