Reputation: 1922
I'm trying to filter my listview with cursoradapter. This is what I've tried so far:
CustomAdapter adapter;
Cursor cursor;
etSearch.addTextChangedListener(new TextWatcher (){
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
}
public void beforeTextChanged(CharSequence arg0, int arg1,
int arg2, int arg3) {
// TODO Auto-generated method stub
}
public void onTextChanged(CharSequence cs, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
adapter.getFilter().filter(cs.toString());
}
});
cursor = dbHelper.getAllItemInventoryListings();
adapter = new CustomAdapter(this, cursor);
lv.setAdapter(adapter);
lv.setTextFilterEnabled(true);
adapter.setFilterQueryProvider(new FilterQueryProvider() {
@Override
public Cursor runQuery(CharSequence constraint) {
String strItemCode = constraint.toString();
return dbHelper.getAllItemInventoryListings(strItemCode);
}
});
When I tried it does not filter. What seems to be wrong? Your help will be appreciated. Thank you.
Upvotes: 3
Views: 6095
Reputation: 207
Try add adapter.notifyDataSetChanged();
after adapter.getFilter().filter(cs.toString());
Upvotes: 5