我正在尝试使用 cursoradapter 过滤我的 ListView 。到目前为止,这是我尝试过的:
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);
}
});
当我尝试时它不过滤。似乎出了什么问题?您的帮助将不胜感激。谢谢。
最佳答案
尝试在 adapter.getFilter().filter(cs.toString()); 之后添加
adapter.notifyDataSetChanged();
关于Android cursoradapter过滤器 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21593379/