package com.demo.stickylistheaders;
import android.content.Context;
import android.database.DataSetObserver;
import android.graphics.Color;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.BaseAdapter;
import android.widget.TextView;
import java.util.List;
import se.emilsjolander.stickylistheaders.StickyListHeadersAdapter;
/**
* Created by panwenye on 14-7-13.
*/
public class DemoListAdapter extends BaseAdapter implements StickyListHeadersAdapter {
List<Contact> mDataSource;
Context mContext;
DemoListAdapter(Context context,List<Contact> dataSource){
if(context==null||dataSource==null){
throw new IllegalArgumentException();
}
mContext = context;
mDataSource = dataSource;
}
@Override
public View getHeaderView(int i, View view, ViewGroup viewGroup) {
if(view==null){
view = new TextView(mContext);
((TextView) view).setGravity(Gravity.CENTER_VERTICAL);
view.setBackgroundColor(Color.parseColor("#99000000"));
AbsListView.LayoutParams lp = new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,50);
view.setLayoutParams(lp);
}
((TextView) view).setText(mDataSource.get(i).sort_key.substring(0, 1));
return view;
}
@Override
public long getHeaderId(int i) {
//获取联系人名称的首字母作为id
return mDataSource.get(i).sort_key.charAt(0);
}
@Override
public int getCount() {
return mDataSource.size();
}
@Override
public Object getItem(int i) {
return mDataSource.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
if(view==null){
view = new TextView(mContext);
((TextView) view).setGravity(Gravity.CENTER_VERTICAL);
AbsListView.LayoutParams lp = new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,100);
view.setLayoutParams(lp);
}
((TextView)view).setText(mDataSource.get(i).name);
return view;
}
}