2014-12-11 2 views
1

Я использую этот код для AutoCompleteTextView - поэтому, когда вы удаляете последний символ, чтобы отобразить список. Но mAutoCompleteTextView.showDropDown(); не работает.Dont open drop в AutoCompleteTextView

mAutoCompleteTextView.addTextChangedListener(new TextWatcher() { 
     @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) { 
      if (s.toString().equals("")) { 
       mAutoCompleteTextView.showDropDown(); 
      } 
     } 
    }); 
+1

почему вы поставили свой код в aftertextchanged? не в ontextchanged? – Darpan

+0

Не работает в onTextChanged слишком – Artem

+0

Возможно, потому что s.toString никогда не соответствует "" или, возможно, AfterTextChanged не запускается, когда текстовое поле пуст. Обычно для запуска требуется не менее 1 символа. –

ответ

2

При инициализации виджета, я вспомнил адаптер в поле класса. использовать для настройки адаптера

mAdapter = (ArrayAdapter<String>)actv.getAdapter(); // mAdapter is a class field   
actv.setText("Tim Hortons"); 
actv.setSelection(0, actv.getText().length()); 
actv.setAdapter((ArrayAdapter<String>)null); // turn off the adapter 
actv.requestFocus(); 
Handler handler = new Handler() { 
public void handleMessage(Message msg) { 
((AutoCompleteTextView)msg.obj).setAdapter(mAdapter); 
}; 
Message msg = mHandler.obtainMessage(); 
msg.obj = actv; 
handler.sendMessageDelayed(msg, 200); 

надеюсь, что это поможет вам

+0

Я уже создал и установил адаптер для autoCompleteTextView – Artem

+0

ok добавьте это свойство в textview mContactTxt.setFocusable (false); mContactTxt.setFocusableInTouchMode (false); mContactTxt.setText (""); mContactTxt.setFocusable (true); mContactTxt.setFocusableInTouchMode (true); – sukhbir

Смежные вопросы