How can I convert an ArrayAdapter<String>
of static data into a CursorAdapter
for using Suggestion Listener in SearchView
?
I have constructed the ArrayAdapter<String>
from static data (allString
)
ArrayAdapter<String> searchAdapter = new ArrayAdapter<String>(context, R.layout.listitem, allString);
and I use it for an MultiAutoCompleteTextView
which works fine in devices with API level less than 11
MultiAutoCompleteTextView findTextView.setAdapter(searchAdapter);
However my target API is level is 11 and for API>10 I use an ActionBar
within which I would like to have a SearchView instead.
Here's what I have tried: It does show the ActionBar
with the embedded SearchView
but does not give any suggestions as it would in the 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;
}
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…