AlphabetIndexer,实现了SectionIndexer接口,是adapter的一个辅助类,辅助实现在快滑时,显示索引字母。
使用字母索引的话,必须保证数据列表是按字母顺序排序,以便AlphabetIndexerh采用二分查找法快速定位。
/** * Cursor表示数据游标 * sortedColumnIndex数据集合中的第几列 * alphabet字母列表,用的最多的是"ABCDEFGHIJKLMNOPQRSTUVWXYZ" **/ public AlphabetIndexer(Cursor cursor, int sortedColumnIndex, CharSequence alphabet) {}
用到3个方法:
//这三个方法,实现了索引数据和列表数据的对应和定位 public int getPositionForSection(int section) {} public int getSectionForPosition(int position) {} public Object[] getSections() {}
3.游标Cursor的实现
Cursor接口的实现,有两种选择:
(1).直接使用数据库查询返回的cursor
(2).自定义实现Cursor接口的新类
第一种方式很简单,查询一下数据库返回Cursor即可。
这里我们以第二种方式实践,伪装一个Cursor,主要是实现3个方法:
(1).getCount()
(2). moveToPosition()
(3). getString()