android 根據字母排序ListView item數據

看圖這裏寫圖片描述

拿到這樣的需求該怎麼做(抱歉,圖片太渣了)
按字母的排序item的首字母;
分析一下,有兩種類型的佈局,
有人說Baseadapter的getItemViewType和getViewTypeCount,nono這樣排序有點麻煩,
我們可以當成一種佈局,字母部分可以隱藏和顯示!我們需要把item的第一個字轉化成拼音,獲取首字母
加入集合,通過 Collections.sort(,)排序;最後setAdapter

然後就是處理Adapter裏面的事。首先要實現一個接口SectionIndexer,重寫相應的方法, public int getPositionForSection(int sectionIndex) 和 public int getSectionForPosition(int position)
還有public Object[] getSections() { return new Object[0]; };從方法名就知道是什麼作用,然後在getView裏面對獲取的view進行處理,代碼:

  //根據position獲取分類的首字母的Char ascii值
        int section = getSectionForPosition(position);

        //如果當前位置等於該分類首字母的Char的位置 ,則認爲是第一次出現
        if(position == getPositionForSection(section)){
            viewHolder.title.setVisibility(View.VISIBLE);
            viewHolder.title.setText(mContent.getSortLetters());
        }else{
            viewHolder.title.setVisibility(View.GONE);
        }

看源碼看源碼====================

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章