如何在Android中使用CursorAdapter聚焦到已过滤的列表项?
我有一个使用CursorAdapter填充行的列表视图,它是一个使用查询列表视图进行排序的视图,有两个文本视图、两个按钮和一个图像视图。此外,屏幕上还有一个“搜索”框和a-Z字母,水平排列在ListView上方 我想轻触A-Z字母表,然后将焦点放在列表项上,从选定的字母表开始。搜索按钮也一样。我不想过滤列表,只需聚焦现有项目并滚动到该索引即可 如何实现这样的功能?下面是我用来让光标以所选字母表开始的代码片段如何在Android中使用CursorAdapter聚焦到已过滤的列表项?,android,android-listview,filtering,android-cursoradapter,Android,Android Listview,Filtering,Android Cursoradapter,我有一个使用CursorAdapter填充行的列表视图,它是一个使用查询列表视图进行排序的视图,有两个文本视图、两个按钮和一个图像视图。此外,屏幕上还有一个“搜索”框和a-Z字母,水平排列在ListView上方 我想轻触A-Z字母表,然后将焦点放在列表项上,从选定的字母表开始。搜索按钮也一样。我不想过滤列表,只需聚焦现有项目并滚动到该索引即可 如何实现这样的功能?下面是我用来让光标以所选字母表开始的代码片段 adapter.getFilter().filter(searchKey); adap
adapter.getFilter().filter(searchKey);
adapter.setFilterQueryProvider(new FilterQueryProvider() {
public Cursor runQuery(CharSequence constraint) {
Cursor cur = dbHelper
.filterList(constraint
.toString());
/*listView.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
listView.setSelection(cursor.getPosition());
}
});*/
return cursor;
}
});
我不知道如何获得过滤后的光标在原始光标中的位置。并且是为此而设计的。你给它一个索引,它就会跳转/滚动到列表中的那个位置。换句话说:如果你想跳转到以H开头的第一个项目,你必须找出它在数据集中的位置。我想你可以把一个项目的位置作为查询的一部分,或者迭代游标。作为一个旁注:考虑使用一个-它是一个标准的小部件,因此Android的UI模式,以及它的真正含义。我尝试使用AlphaoIndexer,但在滚动ListView时它没有显示。