Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用应用程序栏执行搜索?_Android_Android Optionsmenu_Android Searchmanager - Fatal编程技术网

Android 如何使用应用程序栏执行搜索?

Android 如何使用应用程序栏执行搜索?,android,android-optionsmenu,android-searchmanager,Android,Android Optionsmenu,Android Searchmanager,因此,我尝试使用应用程序栏执行搜索,并将查询传递给我调用的属性“searchRequest”。我想显示结果 我一直在跟踪并尝试,但我没有成功 正如我所评论的,我的临时解决方案是调用我的加载程序,并将“searchRequest”作为类属性。但这似乎会导致多个问题,例如,尽管按下了后退按钮,结果仍会显示在屏幕上 我尝试了覆盖onOptionsMenuClosed()方法,将setOnCloseListener()设置为我的searchView 我想我应该在专门的搜索活动中这样做 @Override

因此,我尝试使用应用程序栏执行搜索,并将查询传递给我调用的属性“searchRequest”。我想显示结果

我一直在跟踪并尝试,但我没有成功

正如我所评论的,我的临时解决方案是调用我的加载程序,并将“searchRequest”作为类属性。但这似乎会导致多个问题,例如,尽管按下了后退按钮,结果仍会显示在屏幕上

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

我想我应该在专门的搜索活动中这样做

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

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

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

检查这个教程这正是我想要找的!非常感谢。