Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android cursoradapter filter listview

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.

like image 327
Dunkey Avatar asked Feb 10 '26 03:02

Dunkey


1 Answers

Try add adapter.notifyDataSetChanged(); after adapter.getFilter().filter(cs.toString());

like image 133
Fate Chang Avatar answered Feb 12 '26 20:02

Fate Chang



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!