Как я могу преобразовать ArrayAdapter<String>
статических данных в CursorAdapter
для использования приемника предложений в SearchView
?
Я построил ArrayAdapter<String>
из статических данных (allString
)
ArrayAdapter<String> searchAdapter = new ArrayAdapter<String>(context, R.layout.listitem, allString);
и я использую его для MultiAutoCompleteTextView
, который отлично работает на устройствах с уровнем API менее 11
MultiAutoCompleteTextView findTextView.setAdapter(searchAdapter);
Однако мой целевой API - это уровень 11, а для API > 10 я использую ActionBar
, в котором я бы хотел иметь SearchView.
Вот что я пробовал: он показывает ActionBar
со встроенным SearchView
, но не дает никаких предложений, как это было бы в MultiAutoCompleteTextView
.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
if (android.os.Build.VERSION.SDK_INT > 10){
inflater.inflate(R.menu.menu11, menu);
searchView = (SearchView) menu.findItem(R.id.MENU_SEARCH).getActionView();
int[] to = {0};
CursorAdapter cursorAdapter = new SimpleCursorAdapter(context, R.layout.listitem, null, allBusStopString, to);
searchView.setSuggestionsAdapter(cursorAdapter);
searchView.setOnSuggestionListener(new OnSuggestionListener() {
@Override
public boolean onSuggestionClick(int position) {
String selectedItem = (String)cursorAdapter.getItem(position);
Log.v("search view", selectedItem);
return false;
}
@Override
public boolean onSuggestionSelect(int position) {
return false;
}
});
}else{
inflater.inflate(R.menu.menu, menu);
}
return true;
}