Android: AutoCompleteTextView + SimpleCursorAdapter. Фильтрация данных, возможно ли?

доброго времени суток.


Идея такая. Есть БД. Записи из БД отображаются в ListView. Необходимо реализовать «умный поиск» в списке, то есть водишь символы в текстовое поле, выпадает подсказка (список полей, совпавших с запросом). Решил попробовать AutoCompleteTextView.


в onCreate() активити создаю адаптер и присваиваю его в ListView и в AutoCompleteTextView
...
        editQuery = (AutoCompleteTextView)this.findViewById(R.id.editQuery);
        
        listView = (ListView)this.findViewById(R.id.listView);

        // создааем адаптер и настраиваем список
        SimpleCursorAdapter scAdapter = new SimpleCursorAdapter(this, R.layout.item, cursor, from, to);
        scAdapter.setCursorToStringConverter(new SimpleCursorAdapter.CursorToStringConverter() 
        {
            public CharSequence convertToString(Cursor cursor) 
            {
                return cursor.getString(NAME_COLUMN); // return name of desiase
            }
        });
        
        listView.setAdapter(scAdapter);
        editQuery.setAdapter(scAdapter);

        listView.setOnItemClickListener(this);
        editQuery.setOnItemClickListener(this); 
        ...



Но, проблема в том, что список, выпадающий из AutoCompleteTextView, показывает все то, что есть в ListView. А надо только то, что совпало с веденными символами в AutoCompleteTextView.


Как это сделать? и что я неправильно делаю.
  • Вопрос задан
  • 4570 просмотров
Пригласить эксперта
Ответы на вопрос 1
ara89
@ara89
насколько я понял, нужно обновлять курсор при вводе текста в TextView. добавьте TextWatcher и при обновлении текста обновляйте курсор новым запросом к бд
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы