Для курсора SimpleCursorAdapter вам нужно всего лишь использовать setFilterQueryProvider, чтобы выполнить другой запрос для вашего курсора на основе ограничения:
m_Adapter.setFilterQueryProvider(new FilterQueryProvider() {
public Cursor runQuery(CharSequence constraint) {
Log.d(LOG_TAG, "runQuery constraint:"+constraint);
//uri, projection, and sortOrder might be the same as previous
//but you might want a new selection, based on your filter content (constraint)
Cursor cur = managedQuery(uri, projection, selection, selectionArgs, sortOrder);
return cur; //now your adapter will have the new filtered content
}
});
Когда добавляется ограничение (например, с помощью TextView), адаптер должен быть отфильтрован:
public void onTextChanged(CharSequence s, int start, int before, int count) {
Log.d(LOG_TAG, "Filter:"+s);
if (m_slvAdapter!=null) {
m_Adapter.getFilter().filter(s);
}
}
Надеюсь, это поможет. Я постараюсь написать полную статью с исходным кодом в ближайшие несколько дней.