package cn.com.basic.face.adapter; import android.content.Context; import android.widget.ArrayAdapter; import android.widget.SectionIndexer; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Set; public class PhoneCallFragment { public class AlphabeticalAdapter extends ArrayAdapter implements SectionIndexer { private HashMap alphaIndexer; private String[] sections; public AlphabeticalAdapter(Context c, int resource, List data) { super(c, resource, data); alphaIndexer = new HashMap(); for (int i = 0; i < data.size(); i++) { String s = data.get(i).substring(0, 1).toUpperCase(); if (!alphaIndexer.containsKey(s)) alphaIndexer.put(s, i); } Set sectionLetters = alphaIndexer.keySet(); ArrayList sectionList = new ArrayList(sectionLetters); Collections.sort(sectionList); sections = new String[sectionList.size()]; for (int i = 0; i < sectionList.size(); i++) sections[i] = sectionList.get(i); } public int getPositionForSection(int section) { return alphaIndexer.get(sections[section]); } public int getSectionForPosition(int position) { return 1; } public Object[] getSections() { return sections; } } }