1.布局
xml布局的配置很簡單:
<.IndexableListView
android:id="@+id/contact_list"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</.IndexableListView>
只需要在對應的xml中將本來使用ListView改為IndexableListView即可.
2.UI類中的使用
UI類(Activity,Fragment)中首先需要在onCreateView中獲得上面定義的listview,然后調用setFastScrollEnabled(true)函數打開字母快速滑動的功能.
設置一個實現了SectionIndexer接口的Adapter做為listview的adapter.
3.實現了SectionIndexer接口的adapter
需要實現的方法有兩個.一個是getPositionForSection,這個函數需要返回當前list中,哪一行和目前選中的selection匹配,返回的位置就是listview會跳轉到的位置.
另外一個是getSections方法,主要就是返回一個數組,數組中為右側排序列中應該顯示的每一個元素,對于字母排序一般我們使用#ABCDEFGHIJKLMNOPQRSTUVWXYZ.
4.一些額外的
實現了上面三點,我們已經就可以看到IndexableListView的效果,一些額外的需要就是,一般我們需要排序的是漢字,所以我們需要一個漢字轉化拼音的方法,最簡單的一個方法是基于GB2312的編碼原則進行識別:
GB2312編碼規則如下:
16-55區為一級漢字,按拼音排序。
56-87區為二級漢字,按部首/筆畫排序。
88-94區則未有編碼規則。
所以這個方法只能實現16-55區常用漢字的轉化.