2

我已将 SearchView 添加到过滤 ListView 的 ActionBar。

一切正常,唯一的问题是当我在 SearchView 中编写查询时,查询文本也以大字体出现在屏幕中间的一个框中。

我想这是某种查询预览。我该如何取消呢?我在文档中找不到任何内容。

谢谢。

在此处输入图像描述

4

2 回答 2

2

尝试改变你实现 onQueryTextChange 的方式。我评论 listview.clearTextFilter(); 并将其更改为 ca.getFilter().filter(null);

这是我使用的代码

        @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;
        }
于 2014-09-16T03:23:25.803 回答
1

那是ListView(实际上是它的超类AbsListview]上的文本过滤器。获取ListView和调用的句柄

    yourListview.setTextFilterEnabled(false);

请参阅AbsListView.setTextFilterEnabled(boolean)的 API 文档。

如果你很好奇:他们使用PopupWindow来显示当前输入的查询文本。

于 2013-05-24T20:21:20.270 回答