android onQuerySubmit() 方法搜索小部件给出错误

android onQuerySubmit() method search widget giving error

我对 android 没有太多经验。我正在尝试在 android 操作栏上实现搜索小部件。出现搜索栏,我可以在其中输入文本,但是当我按下提交按钮时,我收到此消息。

W/EGL_emulation: eglSurfaceAttrib not implemented

W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0x7fe63d9c1040, error=EGL_SUCCESS

这是我的代码的一部分

searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextChange(String query) {
            System.out.println("In on Query text change");
            return true;
        }

        @Override
        public boolean onQueryTextSubmit(String query) {
            System.out.println("In on Query text submit");
            return false;
        }
    });

根据代码,当我输入文本时,它会在查询文本更改时打印出来。但是当我按下提交时,它给出了上述错误。

编辑:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    System.out.println("In the menu at main menu");
    getMenuInflater().inflate(R.menu.main_menu, menu);

    MenuItem searchItem = menu.findItem(search);
    SearchView searchView = (SearchView) searchItem.getActionView();


    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);

        searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
        //searchView.setIconifiedByDefault(false);
        searchView.setSubmitButtonEnabled(true);

    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextChange(String query) {
            System.out.println("In on Query text change");
            return true;
        }

        @Override
        public boolean onQueryTextSubmit(String query) {
            System.out.println("In on Query text submit");
            return false;
        }
    });
    return true;
}

试试这个:

 MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.search_view_menu, menu);
        MenuItem searchItem = menu.findItem(R.id.action_search);
        final SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
        searchView.setQueryHint("Search Products...");

        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {

            @Override
            public boolean onQueryTextSubmit(String query) {
                searchView.clearFocus();

                menu.findItem(R.id.action_search).collapseActionView();
                return true;
            }

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

        });
        return super.onCreateOptionsMenu(menu);