AutoCompleTextView не показывает раскрывающуюся
-
28-09-2019 - |
Вопрос
Я расширяю AutoCompleteTextView и переопределить функцию предварительнойформы профиля, чтобы получить результаты из базы данных. Я получаю результаты, но тогда ничего не показано. И GetView в пользовательском адаптере никогда не вызывается. Странная вещь, которую если я представляю предметы (внутри функции init ()), я вижу их ... Может кто-нибудь может указать мне на правильное решение? Спасибо.
public class CityAutoCompleteTextView extends AutoCompleteTextView {
private DataDatabase mCity;
private CityAutoCompleteArrayAdapter mCityAutoCompleteAdapter;
private ArrayList<CityAutoCompleteListItem> mCityListItems;
public CityAutoCompleteTextView(Context context) {
super(context);
init();
}
public CityAutoCompleteTextView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public CityAutoCompleteTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
public City getItem(int position) {
return mCityAutoCompleteAdapter.getItem(position).getCity();
}
private void init() {
mCity = new DataDatabase(this.getContext());
mCityListItems = new ArrayList<CityAutoCompleteListItem>();
mCityAutoCompleteAdapter = new CityAutoCompleteArrayAdapter(this.getContext(), R.layout.autocomplete_list, mCityListItems);
this.setAdapter(mCityAutoCompleteAdapter);
}
@Override
protected void performFiltering(CharSequence text, int keyCode) {
String stext = text.toString();
Cursor cur = mCity.getCitiesMatches(stext);
mCityListItems.clear();
if (cur==null) {
mCityAutoCompleteAdapter.notifyDataSetChanged();
return;
}
while(!cur.isAfterLast()) {
City city = new City(cur.getInt(0),cur.getString(1));
CityAutoCompleteListItem item = new CityAutoCompleteListItem(city, "Unknown province/state",cur.getString(2));
mCityListItems.add(item);
cur.moveToNext();
};
cur.close();
mCityAutoCompleteAdapter.notifyDataSetChanged();
super.performFiltering(text, keyCode);
}
}
Решение
Заменил McIYTLISTISTITEMS с McITYAUTOCOLLETAPTER и теперь работает.
Не связан с StackOverflow