我在ListView上使用文本过滤器,我想摆脱显示过滤器文本的弹出视图。有没有办法删除这个视图?
一些示例代码:
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");
当我设置过滤器文本时,ListView底部会弹出一个非常难看的视图,显示当前过滤器文本的内容:
答案 0 :(得分:8)
我在这里找到答案: http://markmail.org/message/7uju6bmmaswag2lu:
通过调用setTextFilterEnabled(),您可以请求此弹出窗口。如果你 不想要它,禁用文本过滤。这是一个互动功能 为用户。它并不意味着以编程方式使用。如果你想 以编程方式过滤你的适配器,调用你的getFilter() 直接适配器(如果您的适配器支持过滤。)
Romain Guy
因此,您需要直接使用过滤器,而不是使用setTextFilterEnabled:
CustomAdapter customAdapter = (customAdapter)myListView.getAdapter();
Filter filter = customAdapter .getFilter();
filter.filter("search string");
答案 1 :(得分:0)
尝试进行此更改
@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;
}