0

我将我的搜索视图设置如下:

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 行。

4

0 回答 0