Android SearchView.onQueryTextSubmit(字符串查询)

use*_*166 5 search android android-actionbar

我在获取查询的提交按钮时遇到问题.我在这里有这部分代码

searchView.setIconifiedByDefault(true); //iconify the widget
    searchView.setSubmitButtonEnabled(true);
Run Code Online (Sandbox Code Playgroud)

我也有一个听众

new SearchView.OnQueryTextListener(){
  @Override
    public boolean onQueryTextChange(String newText) {
    // TODO Auto-generated method stub
        return false;
    }


        @Override
        public boolean onQueryTextSubmit(String query) {
            // TODO Auto-generated method stub
                            //Output the new list with the query results

            Context context = getApplicationContext();
            CharSequence start = "Start";
            int duration = Toast.LENGTH_SHORT;

            Toast toast = Toast.makeText(context, start, duration);
            toast.show();
            return false;
        }
    };
Run Code Online (Sandbox Code Playgroud)

单击提交按钮时,它不显示吐司,因此我假设单击提交按钮时,它没有按预期执行操作.我不知道这里有什么问题.

小智 6

你必须打电话

searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener());
Run Code Online (Sandbox Code Playgroud)

在您的SearchView上.

  • 如果我在 public boolean onQueryTextSubmit(String s) 中返回 true 和返回 false 有什么区别 (2认同)

gus*_*gbc 6

您正在返回false根据时到底文档,你应该返回true

侦听器可以通过返回 true 来指示它已处理提交请求来覆盖标准行为。否则返回 false 以让 SearchView 通过启动任何关联的意图来处理提交。


Pet*_*ter 5

对于其他人,如果他们需要或寻求帮助

mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener(){

           @Override
           public boolean onQueryTextSubmit(String s) {
               Toast.makeText(context,"Our word : "+s,Toast.LENGTH_SHORT).show();
               return false;
           }

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