How do I remove popup text from listview filter?
Asked Answered
P

2

7

I'm using a text filter on a ListView and I'd like to get rid of the popup view that shows what the filter text is. Is there any way to remove this view?

Some example code:

    ArrayList<String> buildingNames = new ArrayList<String>();
    ListView list = (ListView)findViewById(R.id.list);

    list.setAdapter(new ArrayAdapter<String>(this, R.layout.menu_item, buildingNames));
    list.setTextFilterEnabled(true);

    list.setFilterText("test_filter");

When I set the filter text, a really ugly view pops up at the bottom of the ListView that shows what the current filter text is:

ListView filter text popup

Poeticize answered 3/11, 2011 at 17:13 Comment(1)
Please provide some example source code that you're using isolated to show the problem you are facing.Eudemonics
C
8

I found the answer here: http://markmail.org/message/7uju6bmmaswag2lu:

By calling setTextFilterEnabled() you do request this popup. If you don't want it, disable text filtering. This is an interactive feature for the user. It is not meant to be used programatically. If you want to programatically filter your adapter, call getFilter() on your adapter directly (if your adapter supports filtering.)

Romain Guy

So rather than using setTextFilterEnabled you need to work with the filter directly like so:

CustomAdapter customAdapter = (customAdapter)myListView.getAdapter();
Filter filter = customAdapter .getFilter();
filter.filter("search string");
Certainly answered 23/2, 2012 at 15:39 Comment(0)
A
0

Try to do this change

@Override
        public boolean onQueryTextChange(String newText) {
            System.out.println("tap");
            yourAdapter ca = (yourAdapter)listview.getAdapter();

            if (TextUtils.isEmpty(newText)) {
                System.out.println("isEmpty");
                //listview.clearTextFilter();  
                ca.getFilter().filter(null);
            } else {

                ca.getFilter().filter(newText);
                //listview.setFilterText(newText);

            }
            return true;
        }
Abbreviated answered 16/9, 2014 at 3:17 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.