Android SearchView:在自定义视图中显示建议,而非listview

时间:2016-04-06 13:24:47

标签: android searchview

我正在为我的应用实施搜索查看。以下是我设置我的搜索视图的方法:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.options_menu, menu);
    this.menu = menu;

    // Associate searchable configuration with the SearchView
    SearchManager searchManager =
            (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    MenuItem searchItem = menu.findItem(R.id.search);
    SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            return false;
        }

        @Override
        public boolean onQueryTextChange(String query) {
            loadHistory(query);
            return true;
        }
    });


    return true;

}

我想在用户开始输入时向用户显示搜索建议。我可以使用listview执行此操作:

 private void loadHistory(String query) {

    // query db etc...

    SearchManager manager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    final SearchView search = (SearchView) menu.findItem(R.id.search).getActionView();
    search.setSuggestionsAdapter(new ExampleAdapter(this, cursor, items));
}

但是假设我不想将搜索建议显示为列表视图,并在自定义视图中显示它们,我可以在其中添加更多内容,然后只搜索建议。例如,我想显示以下自定义视图而不是建议搜索列表视图:

enter image description here

我该怎么做?有一个设置建议适配器setSuggestionsAdapter(adapter)的功能,但我找不到像setCustomSuggestionsView(view)这样的函数。

感谢。

1 个答案:

答案 0 :(得分:0)

我认为您需要的是对您的结果的回收者视图。有关详细信息,请参阅此answer。回收站视图为您提供所有自由布局。要使用更多视图类型,请参阅this帖子。希望这可以帮助。根据你的描述,我对你的案子不够熟悉。