package com.partynetwork.iparty.contacts; import java.util.List; import com.partynetwork.dataprovider.util.PinyinUtil; import com.partynetwork.iparty.app.common.BitmapManager; import com.partynetwork.iparty.info.ContactsInfo; import android.app.Activity; import android.util.SparseArray; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.SectionIndexer; /** * 联系人列表适配器。 * * @author guolin */ public class ContactsListAdapter extends ArrayAdapter<ContactsInfo> { /** * 用来记录view列表 */ public SparseArray<ContactsListView> sparseList; /** * 字母表分组工具 */ private SectionIndexer mIndexer; private Activity activity; private BitmapManager bitmapManager; /** 布局的类型 */ private int pageType; public ContactsListAdapter(Activity activity, List<ContactsInfo> objects) { super(activity, 0, objects); this.activity = activity; bitmapManager = new BitmapManager(); sparseList = new SparseArray<ContactsListView>(); } public void setPageType(int pageType) { this.pageType = pageType; } @Override public View getView(int position, View convertView, ViewGroup parent) { ContactsListView contactsView = (ContactsListView) convertView; if (contactsView == null) { contactsView = new ContactsListView(activity, pageType, bitmapManager); sparseList.put(position, contactsView); } ContactsInfo contact = getItem(position); contactsView.setInfo(contact); int section = mIndexer.getSectionForPosition(position); if (position == mIndexer.getPositionForSection(section)) { contactsView.setKey(PinyinUtil.getSortKey(contact.getUserName())); contactsView.getKeyLayout().setVisibility(View.VISIBLE); } else { contactsView.getKeyLayout().setVisibility(View.GONE); } return contactsView; } /** * 给当前适配器传入一个分组工具。 * * @param indexer */ public void setIndexer(SectionIndexer indexer) { mIndexer = indexer; } }