当前位置: 首页 > 知识库问答 >
问题:

Android SearchView-空查询不工作

禄仲渊
2023-03-14

我正在尝试将最近的搜索添加到工具栏上的SearchView:

 mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
    @Override
    public boolean onQueryTextSubmit(String s) {
        return false;
    }

    @Override
    public boolean onQueryTextChange(String s) {
        if (s!= null )
        {
            if (s.isEmpty()){
                loadRecentList();
            }
            else{
                search(s);
            }
        }
        return true;
    }

});

编辑:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu_main_activity, menu);
    searchItem = menu.findItem(R.id.btn_earch);
    initSearchView();
    setSearchViewListener();
    return super.onCreateOptionsMenu(menu);
}



 protected void initSearchView() {
    final String CURSOR_RESOURCE_ID = "mCursorDrawableRes";
    final int THRESHOLD = 1;

    mSearchView = (SearchView) searchItem.getActionView();

    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        mSearchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
    mSearchView.setMeasureWithLargestChildEnabled(true);

    autoCompleteTextView = (AutoCompleteTextView) mSearchView.findViewById(R.id.search_src_text);
    autoCompleteTextView.setThreshold(THRESHOLD);


}

protected void setSearchViewListener() {



    mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String s) {
            return false;
        }

        @Override
        public boolean onQueryTextChange(String s) {
            if (s!= null )
            {
                if (s.isEmpty()){
                    loadRecentList();
                }
                else{
                    search(s);
                }
            }
            return true;
        }

    });

btn_search项目:

<item
    android:id="@+id/btn_search"
    android:icon="@drawable/ic_search_small"
    android:title="@string/tooltip_search"
    app:actionViewClass="android.support.v7.widget.SearchView"
    app:showAsAction="always"
    />

共有1个答案

皇甫浩壤
2023-03-14

我用这样的方法解决问题

 searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            Log.i("MyApp", searchView.getQuery().toString());
            consultarListaParadas(searchView.getQuery().toString());
            getActivity().runOnUiThread(new Runnable() {
                public void run() {
                    adaptadorListaParadasBus.setListaParadas(listaParadas);
                    adaptadorListaParadasBus.notifyDataSetChanged();
                }
            });

            return true;
        }

        @Override
        public boolean onQueryTextChange(String newText) {

            if(newText.equals("")){
                this.onQueryTextSubmit("");
            }
            return true;
        }
    });

唯一的问题是它在你没有按搜索按钮的情况下就扔了。

 类似资料:
  • 我正在使用ApacheLucene5.0。0并在使用QueryParser时遇到问题。我试图创建一个查询,但得到一个ParseException。 以下是我的代码: 这是我得到的例外: 如果有帮助,我已经包含了以下jar文件: lucene-analyzers-common-5.0.0.jar lucene-core-5.0.0.jar lucene-queries-5.0.0.jar lucen

  • 我使用JPA和我已经使用两个表的连接,现在我的要求是我可以有可能的值的组合在哪里的条件,有些可能是null或空。 我的包含 我在查询中处理这个,它对很好,但是对于是给一个错误 嵌套异常是org.hibernate.exception.SQLGrammarExctive:无法提取ResultSet]与根本原因java.sql.SQLSynTaxError异常:ORA-00932:不一致的数据类型:预

  • 我的查询没有使用参数对我的帖子进行排序。 一点背景: 我在foreach语句中,该语句循环遍历“category”id的自定义分类法。在该foreach语句中,我试图调用一个新的WP_查询,从该foreach循环的每个“类别”获取帖子。我的args数组如下所示: 和都是此post\u类型中我的自定义分类中的数组。 和根本不起作用,我想不出原因。

  • 我有一个包含许多文档集合,其结构如下: 纬度范围为[25;55] 该收藏包含大约60万条记录。 我设置了2D_Sphere索引:db.myCollection.createIndex({location:“2DSphere”}) 我获得了所有的记录,但我只期望有几个记录(靠近我的坐标!) 有什么建议吗?提前致谢

  • 我试图更新一个列,我没有修改列值,你能帮我吗? 我正在尝试的代码:- 这就是我得到的错误: