我将我的搜索视图设置如下:
searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
searchView.setOnQueryTextListener(this);
searchAdapter = new SimpleCursorAdapter(this, R.layout.listentry, null, new String[] { "name" }, new int[] { R.id.name_entry }, 0);
searchView.setSuggestionsAdapter(searchAdapter);
我在SimpleCursorAdapter
这里创建并将其设置为SearchView
对象的建议适配器。然后,在onQueryTextChanged
我的方法中:
searchAdapter.changeCursor(dbHelper.runAlgorithms(q)); //"q" is the text from searchview
这是我的runAlgorithms
方法中的内容:
q = q.replace("'", "%27");
q = q.replace("%", "\\%");
Cursor c = db.rawQuery("SELECT _id, name, desc, data FROM verbs WHERE name_unaccented LIKE '" + q + "' ESCAPE '\\'", null);
return c;
但是,每次调用所有这些时(每次我在搜索视图中按一个键)它每次都会跳过大约 50 到 150 帧,这太多了。可能是什么问题/什么可能会减慢建议的速度?这是这样做的正确方法吗?被查询的表有大约 7500 行。