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

2022-09-03 17:50:22

为什么中的方法被处理了两次?我需要一个结果,我该怎么做?onQueryTextSubmitSearchView

这是我的代码:

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

答案 1

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

searchView.clearFocus();


答案 2

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

但是,searchView.clearFocus();在这里也有效。


推荐