我该如何将静态数据的 ArrayAdapter<String>
转换为 CursorAdapter
,以便在 SearchView
中使用建议监听器?我已经从静态数据 (allString
) 构建了 ArrayAdapter<String>
。
ArrayAdapter<String> searchAdapter = new ArrayAdapter<String>(context, R.layout.listitem, allString);
我在一个MultiAutoCompleteTextView
中使用它,在API级别低于11的设备上运行正常。
MultiAutoCompleteTextView findTextView.setAdapter(searchAdapter);
然而,我的目标API级别是11,对于API>10的情况下我使用一个ActionBar
,其中我想要有一个SearchView。这是我尝试过的:它显示了嵌入的SearchView
的ActionBar
,但不像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;
}
OnQueryTextListener
,在此监听器中重新创建游标并在适配器中更改游标。 - pawelzieba