【发布时间】:2016-03-16 01:33:34
【问题描述】:
情况
我有一个搜索视图,用户可以在其中搜索位于本地 sqlitedatabase 中的项目,并且在用户键入时会弹出一个建议列表。我使用 MatrixCursor、支持库的 SimpleCursorAdapter 和 searchview.setSuggestionAdapter() 来执行此操作。这在纵向模式下可以正常工作,但在横向模式下会出现问题。
问题在于,出现的不是所需的自定义建议,而是 android.database.Matrix...。
问题
如何让我的自定义建议以横向模式显示(在软键盘或任何地方)?我没有完全禁用提示的选项,因为如果他们拼错了项目,用户会感到困惑,然后期望结果在没有出现时出现。
代码
片段.java
private void setUpSingleSearch(final Menu menu, final MenuItem singleSearchItem) {
searchView = (SearchView) MenuItemCompat.getActionView(singleSearchItem);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
displaySuggestions(newText);
return false;
}
});
}
private void displaySuggestions(String query) {
MatrixCursor matrixCursor = new MatrixCursor(new String[]{BaseColumns._ID,
RestaurantTable.Cols.NAME, RestaurantTable.Cols.ID});
RestaurantListing restaurantListing = new RestaurantListing(getContext());
restaurantListing.getRestaurantSuggestions(currListName, "Name", matrixCursor, query);
setUpSearchViewSuggestions(matrixCursor);
}
private void setUpSearchViewSuggestions(MatrixCursor cursor) {
String[] from = new String[]{RestaurantTable.Cols.NAME};
int[] to = new int[]{android.R.id.text1};
android.support.v4.widget.SimpleCursorAdapter adapter = new android.support.v4.widget.SimpleCursorAdapter(
getActivity().getBaseContext(),
R.layout.search_view_suggestions_list_item,
cursor,
from,
to,
CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
searchView.setSuggestionsAdapter(adapter);
}
【问题讨论】:
标签: android searchview search-suggestion