【发布时间】:2014-03-24 21:53:26
【问题描述】:
我有一个带有 SimpleCursorAdapter 的 SearchView,它从 SQLite DB 查询建议。查询工作得很好,SearchView 会弹出一个包含建议的列表。但是,这些建议是不可见的。例如,如果有两个建议,可以看到有两个列表条目,但没有显示文本。 SearchView 包含在 DialogFragment 中。
这是光标适配器和搜索视图的初始化:
suggestionAdapter = new SimpleCursorAdapter(getActivity(),
android.R.layout.simple_list_item_1,
null,
new String[]{"name"},
new int[]{android.R.layout.simple_list_item_1},
0);
final SearchView searchProd = (SearchView) dialogView.findViewById(R.id.searchProd);
searchProd.setOnQueryTextListener(this);
searchProd.setOnSuggestionListener(this);
searchProd.setSuggestionsAdapter(suggestionAdapter);
搜索建议在 onQueryTextChanged 中生成,其中新光标被生成并注入到建议适配器中:
@Override
public boolean onQueryTextChange(String newText) {
String[] columns = new String[]{"_id", "name"};
String selection = "name LIKE ?";
String[] selectionArgs = new String[]{newText + "%"};
Cursor c = db.query(TABLE_NAME,
columns,
selection,
selectionArgs,
null,
null,
null);
if (c.getCount() > 0) {
suggestionAdapter.changeCursor(c);
suggestionAdapter.notifyDataSetChanged();
return true;
} else {
return false;
}
}
【问题讨论】:
-
你的代码对我帮助很大,谢谢
标签: android sqlite searchview