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);
}
}
}
我有一个奇怪的情况,其中一个 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);
}
}
}