。adapter.getFilter()过滤器(newText);没有触发,也没有过滤任何东西

时间:2017-07-03 04:05:54

标签: android listview

问题是当我将simpleAdapter更改为CursorAdapter时,我的SearchView不再起作用。我正在尝试使用logcat进行调试,但即使在logcat中也没有日志发生,所以我想知道为什么我的代码有什么问题,因为logcat没有显示错误。

这是我的代码

  SearchView searchView = (SearchView) item.getActionView();
        searchView.setQueryHint("Search Title/Artist");

        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {


            @Override
            public boolean onQueryTextSubmit(String query) {
                return false;
            }

            @Override
            public boolean onQueryTextChange(String newText) {
                adapter.getFilter().filter(newText);
                return false;
            }
        });

调用CursorAdapter

 Cursor res = db.query("songs",null,null,null,null,null,"title");


        adapter = new ClientCursorAdapter(MainActivity.this,res, CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
////
////
        lv.setAdapter(adapter);

调用CursorAdapter并将其显示在我的listview中效果很好但是当我尝试在Searchview中搜索没有任何反应时,listview没有发生任何变化。

还有一件事。

我将Toast放在onQueryTextChange中,就像这样

@Override
            public boolean onQueryTextChange(String newText) {
                Toast.makeText(MainActivity.this, newText, Toast.LENGTH_SHORT).show();
                return false;
            }

Toast显示了我在Searchview中输入的内容。所以我不知道我的搜索视图到底发生了什么。请帮忙。

0 个答案:

没有答案