Dunkey
Dunkey

Reputation: 1922

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.

Upvotes: 3

Views: 6095

Answers (1)

Fate Chang
Fate Chang

Reputation: 207

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

Upvotes: 5

Related Questions