IndexableListView的使用

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區常用漢字的轉化.

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,268評論 25 708
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,765評論 18 399
  • 姑娘美若芙蓉,俊如英男。老板娘頑皮嬌俏,狠辣也多情。 今日,美人六十,我又看了一眼《新龍門客棧》。 寫美人的文字,...
    Jennyy閱讀 496評論 1 1
  • 拾穗的時光閱讀 200評論 0 2
  • 下班回到家看到兒子在那擺弄他的玩具,把之前電話里答應我的燒水、刷牙、學習都拋在了腦后。我也沒有生氣,小孩...
    李璽辰媽媽閱讀 171評論 0 1