【问题标题】:Android SearchView.onQueryTextSubmit(String query)Android SearchView.onQueryTextSubmit(字符串查询)
【发布时间】:2013-12-04 01:26:39
【问题描述】:

我在获取提交按钮以使查询正常工作时遇到问题。我这里有这部分代码

searchView.setIconifiedByDefault(true); //iconify the widget
    searchView.setSubmitButtonEnabled(true);

我也有一个听众

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

单击提交按钮时,它不显示 toast,所以我假设单击提交按钮时,它没有做它应该做的事情。我不知道这里出了什么问题。

【问题讨论】:

    标签: android search android-actionbar


    【解决方案1】:

    你必须打电话

    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener());
    

    在您的 SearchView 上。

    【讨论】:

    • 如果我在公共布尔 onQueryTextSubmit(String s) 中返回 true 和返回 false 有什么区别
    • 对于 onQueryTextChange - 如果 SearchView 应该执行显示任何可用建议的默认操作,则为 false,如果该操作由侦听器处理,则为 true。对于 onQueryTextSubmit - 如果查询已由侦听器处理,则为 true,如果让 SearchView 执行默认操作,则为 false。
    【解决方案2】:

    如果其他人需要或寻求帮助

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

    【讨论】:

      【解决方案3】:

      你最终返回false,当根据documentation你应该返回true

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-12
        • 1970-01-01
        • 2010-11-20
        • 2021-01-15
        • 2011-05-14
        • 2012-03-14
        • 2012-01-14
        • 2016-06-02
        相关资源
        最近更新 更多