安卓:防止文本框弹出一个搜索查看输入文本时(Android: Prevent text field

2019-07-29 02:28发布

你好Android开发

我得的是Android的一个问题搜索查看小部件。 我想要做的就是一个“活”的文本过滤器连接到我的ListView(文字输入自动刷新筛选结果)。 它的工作原理其实很好,它是没有巨大的努力得到它在我的ListActivity这些线路的工作:

private SearchView listFilter;

this.listFilter = (SearchView) findViewById(R.id.listFilter);
this.listFilter.setOnQueryTextListener(this);
this.listFilter.setSubmitButtonEnabled(false);

this.getListView().setOnItemClickListener(this);
this.getListView().setTextFilterEnabled(true);

// from OnQueryTextListener
public boolean onQueryTextChange(String newText) {
    if (newText.isEmpty()) {
        this.getListView().clearTextFilter();
    } else {
        this.getListView().setFilterText(newText);
    }
    return true;
}

这里的XML插件声明

<SearchView
    android:id="@+id/listFilter"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:iconifiedByDefault="false"
    android:queryHint="enter text to filter" />

现在我的问题是什么,我每次文本输入到搜索查看时,一个奇怪的文本字段弹出即时显示,因为我刚进入这是一种无用的,因为我可以看到我输入的搜索查看本身相同的文本也部分地阻塞看见我的列表条目,这仅仅是烦人。

有没有什么办法,以防止上输入到搜索查看弹出的文本字段? 我找不到既不在XML定义窗口小部件的选项,也没有对Java类引用的任何财产。

我知道有另一种方式利用的EditText和TextWatcher提供过滤器功能,不过那时候我也全部由我自己来处理过滤,无法从搜索查看处理它,我获利。

任何建议表示赞赏。 最好的祝福

费利克斯

Answer 1:

我发现了如何摆脱难看的弹出窗口。 诀窍是用滤网下面directly.The代码假定您已经于您customAdapter实施过滤工作。

public boolean onQueryTextChange(String newText) {
    if (TextUtils.isEmpty(newText)) {
       m_listView.clearTextFilter();
    } else {
       ContactsAdapter ca = (ContactsAdapter)lv.getAdapter();
       ca.getFilter().filter(newText);
       //following line was causing the ugly popup window.
       //m_listView.setFilterText(newText);
    }
   return true;
}


文章来源: Android: Prevent text field pop-up when entering text in a SearchView