我有一个搜索 View ,其中包含由 MatrixCursor 填充的建议(因为我已经有一个字符串数组)。但是我想得到用户正在选择哪个项目。到目前为止,我只能获得用户点击建议列表的位置:
searchView.setOnSuggestionListener(new SearchView.OnSuggestionListener() {
@Override
public boolean onSuggestionClick(int position) {
String selectedItem = (String)mAdapter.getItem(position);
Log.e("search view", selectedItem);
return true;
}
但是我有一个错误:android.database.MatrixCursor cannot be cast to java.lang.String 而且我不确定如何处理它。非常感谢任何形式的帮助。
最佳答案
如果有人还在寻找答案。使用此代码。
searchView.setOnSuggestionListener(new SearchView.OnSuggestionListener() {
@Override
public boolean onSuggestionSelect(int position) {
return true;
}
@Override
public boolean onSuggestionClick(int position) {
Cursor cursor= searchView.getSuggestionsAdapter().getCursor();
cursor.moveToPosition(position);
String suggestion =cursor.getString(2);//2 is the index of col containing suggestion name.
searchView.setQuery(suggestion,true);//setting suggestion
return true;
}
});
关于android - SearchView:从建议监听器中获取选中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30831484/