【问题标题】:How do I remove popup text from listview filter?如何从列表视图过滤器中删除弹出文本?
【发布时间】:2011-11-03 17:13:51
【问题描述】:

我在 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 底部会弹出一个非常丑陋的视图,显示当前过滤器文本是什么:

【问题讨论】:

  • 请提供一些您正在使用的示例源代码,以显示您面临的问题。

标签: android android-listview


【解决方案1】:

我在这里找到了答案: http://markmail.org/message/7uju6bmmaswag2lu:

通过调用 setTextFilterEnabled() 你确实请求了这个弹出窗口。如果你 不想要它,禁用文本过滤。这是一个互动功能 为用户。它并不意味着以编程方式使用。如果你想 要以编程方式过滤您的适配器,请在您的 直接适配器(如果您的适配器支持过滤。)

罗曼人

因此,您需要像这样直接使用过滤器,而不是使用 setTextFilterEnabled:

CustomAdapter customAdapter = (customAdapter)myListView.getAdapter();
Filter filter = customAdapter .getFilter();
filter.filter("search string");

【讨论】:

    【解决方案2】:

    尝试进行此更改

    @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;
            }
    

    【讨论】:

      猜你喜欢
      • 2011-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-09
      相关资源
      最近更新 更多