借鉴 https://download.csdn.net/download/zczcyc0201/6412097
废话不多说 简单实用:
model类
public class MyTuwenIssuingItem {
public int siteId; //分组Id
public int folderId; //组内 成员Id
public String siteTitle; //组名
public String folderTitle; //组内成员名
public boolean flag;
}
adapter 类:
public class TuwenIssuedStickyGridAdapter extends BaseAdapter implements
StickyGridHeadersSimpleAdapter {
private List<MyTuwenIssuingItem> list;
private LayoutInflater mInflater;
private Context context;
public TuwenIssuedStickyGridAdapter(Context context, List<MyTuwenIssuingItem> list) {
this.list = list;
this.context = context;
mInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder mViewHolder;
if (convertView == null) {
mViewHolder = new ViewHolder();
convertView = mInflater.inflate(R.layout.item_issuing_grid, parent, false);
mViewHolder.textView = (TextView) convertView
.findViewById(R.id.id_item_title);
convertView.setTag(mViewHolder);
} else {
mViewHolder = (ViewHolder) convertView.getTag();
}
MyTuwenIssuingItem item = list.get(position);
mViewHolder.textView.setText(item.getFolderTitle());
if(item.isFlag())
{
mViewHolder.textView.setBackgroundResource(R.drawable.tuwen_retrieve_shape2);
mViewHolder.textView.setTextColor(context.getResources().getColor(R.color.white));
}else{
mViewHolder.textView.setBackgroundResource(R.drawable.tuwen_retrieve_shape);
mViewHolder.textView.setTextColor(context.getResources().getColor(R.color.msgTitleColor));
}
return convertView;
}
/**
* 显示 组的名字
* @return
*/
@Override
public View getHeaderView(int position, View convertView, ViewGroup parent) {
HeaderViewHolder mHeaderHolder;
if (convertView == null) {
mHeaderHolder = new HeaderViewHolder();
convertView = mInflater.inflate(R.layout.item_issuing_grid_head, parent, false);
mHeaderHolder.mTextView = (TextView) convertView
.findViewById(R.id.id_head_title);
convertView.setTag(mHeaderHolder);
} else {
mHeaderHolder = (HeaderViewHolder) convertView.getTag();
}
mHeaderHolder.mTextView.setText(list.get(position).getSiteTitle());
return convertView;
}
public static class ViewHolder {
public TextView textView;
}
public static class HeaderViewHolder {
public TextView mTextView;
}
/**
* 根据 组的id分类
* @return
*/
@Override
public long getHeaderId(int position) {
return list.get(position).getSiteId();
}
}
activity 显示:
id_grid = (StickyGridHeadersGridView) findViewById(R.id.id_grid);
adapter = new TuwenIssuedStickyGridAdapter(this,data);
// adapter = new MyListAdapter(this,data);
id_grid.setAdapter(adapter); // 设置适配器
id_grid.setNumColumns(3);
id_grid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
MyTuwenIssuingItem myItem = data.get(position);
if(myItem.flag)
{
myItem.flag = false;
select.remove(myItem);
}
else
{
myItem.flag = true;
select.add(myItem);
}
adapter.notifyDataSetChanged();
}
});