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;
}
}