SearchView中的onQueryTextSubmit在Android Java中处理两次

Igo*_*nov 8 java android searchview

为什么onQueryTextSubmit方法in SearchView被处理两次?我需要一个结果,我该怎么做?

这是我的代码:

 public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main, menu);
    SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            if (query != null)
                audioRequest(query);
            return false;
        }

        @Override
        public boolean onQueryTextChange(String newText) {
            return false;
        }
    });
    return true;
}
Run Code Online (Sandbox Code Playgroud)

Mah*_*iya 19

您可以使用以下代码来防止onQueryTextSubmit执行两次:

searchView.clearFocus();

  • 在哪里调用这个? (3认同)

小智 6

当从模拟器上的键盘输入时,它会生成两个输出,但当单击模拟器键盘上的搜索按钮时,它会创建单个输出。所以,我认为你不应该担心这个。在所有手机或平板电脑上,此错误可能不会发生。

但是, searchView.clearFocus(); 也在这里工作。