我有一个奇怪的情况,其中一个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) {
}
});
}
答案 0 :(得分:1)
问题在于ifTextChanged()方法中if块的范围。 请尝试以下代码:
@Override
public void afterTextChanged(Editable arg0) {
if(tv == etSerial){
if(!etSerial.getText().toString().isEmpty()){
etDesign.setEnabled(false);
atShade.setEnabled(false);
}
}
}