【问题标题】:How do I perform a search using the App bar?如何使用应用栏执行搜索?
【发布时间】:2017-06-20 09:51:50
【问题描述】:

所以我尝试使用应用栏执行搜索并将查询传递给我称为“searchRequest”的属性。我想显示结果。

我一直在关注this guide in the documentation 并尝试过,但后来我无济于事。

正如我已经注释掉的,我的临时解决方案是调用我的加载程序并将“searchRequest”设置为类属性。但这似乎会导致多个问题,例如尽管按下后退按钮,结果仍保留在屏幕上。

我已尝试覆盖 onOptionsMenuClosed() 方法,将 setOnCloseListener() 设置为我的 searchView。

我怀疑我应该在专门的 SearchActivity 中执行此操作。

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

    // Associate searchable configuration with the SearchView
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));

    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            this.searchRequest = query;
            /*LoaderManager loaderManager = getLoaderManager();
            loaderManager.initLoader(BOOK_LOADER_ID, null,MainActivity.this);*/

            return true;
        }

        @Override
        public boolean onQueryTextChange(String newText) {
            return false;
        }
    });
}

【问题讨论】:

标签: android android-optionsmenu android-searchmanager


【解决方案1】:

也添加这个,每当搜索视图展开或折叠时都会调用它。

MenuItemCompat.setOnActionExpandListener(searchView,
                    new MenuItemCompat.OnActionExpandListener() {
                        @Override
                        public boolean onMenuItemActionExpand(MenuItem menuItem) {
                            return true;
                        }

                        @Override
                        public boolean onMenuItemActionCollapse(MenuItem menuItem) {
                            // Refresh here with full list.
                            return true;
                        }
                    });

【讨论】:

  • 这正是我想要的!谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-13
  • 1970-01-01
相关资源
最近更新 更多