如何将ArrayAdapter<String>
静态数据转换为CursorAdapter
以使用SearchView
中的Suggestion Listener? 我已经构建了从静态数据(allString
)将ArrayAdapter转换为CursorAdapter以便在SearchView中使用
ArrayAdapter<String> searchAdapter = new ArrayAdapter<String>(context, R.layout.listitem, allString);
,我使用它的MultiAutoCompleteTextView
这在设备与API级工作正常,小于11
MultiAutoCompleteTextView findTextView.setAdapter(searchAdapter);
但是我的目标API是水平ArrayAdapter<String>
是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;
}
感谢,它的工作。 – 2012-07-24 10:56:33
我只是不得不添加_id列以避免错误解释[这里](http://stackoverflow.com/questions/3360605/column-id-does-not-exist) – 2012-07-24 11:05:24
是的,我忘了'_id' – pawelzieba 2012-07-24 11:22:57