Come posso convertire uno ArrayAdapter<String>
di dati statici in un CursorAdapter
per l'utilizzo di Listener di suggerimenti in SearchView
? Ho costruito il ArrayAdapter<String>
da dati statici (allString
)Conversione di un ArrayAdapter in CursorAdapter per l'uso in un SearchView
ArrayAdapter<String> searchAdapter = new ArrayAdapter<String>(context, R.layout.listitem, allString);
e che uso per un MultiAutoCompleteTextView
che funziona bene in dispositivi con livello di API inferiore a 11
MultiAutoCompleteTextView findTextView.setAdapter(searchAdapter);
Tuttavia il mio obiettivo API livello è 11 e per API> 10 uso uno ActionBar
all'interno del quale mi piacerebbe avere un SearchView, invece.
Ecco che cosa ho provato: Mostrano la ActionBar
con la incorporato SearchView
ma non dà qualche suggerimento come si farebbe nel 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;
}
grazie, ha funzionato. –
Ho appena dovuto aggiungere _id colonna per evitare l'errore spiegato [qui] (http://stackoverflow.com/questions/3360605/column-id-does-not-exist) –
Sì, infatti, ho dimenticato di '_id' – pawelzieba