thank's in advance to all who can help.
public class SalesStickyGVAdapter extends BaseAdapter implements StickyGridHeadersBaseAdapter
{
private Context mContext;
private Vector items;
private String [] headers;
public SalesStickyGVAdapter(Context mContext, String [] headers, Vector<SaleObj> sales)
{
this.mContext = mContext;
this.items = sales;
this.headers = headers;
}
@Override
public int getCount()
{
return items.size();
}
@Override
public SaleObj getItem(int position)
{
return items.get(position);
}
@Override
public long getItemId(int position)
{
return items.get(position).hashCode();
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
ChildView holder;
SaleObj currentSaleObj = getItem(position);
if(convertView == null)
{
holder = new ChildView();
convertView = LayoutInflater.from(mContext).inflate(R.layout.sale_row_child_layout, null);
holder.tvPubName = (RobotoTextView)convertView.findViewById(R.id.tv_sale_pub_name);
holder.tvSaleDescription = (RobotoTextView)convertView.findViewById(R.id.tv_sale_description);
convertView.setTag(holder);
}
else
{
holder = (ChildView)convertView.getTag();
}
//get the pub name
holder.tvPubName.setText(App.pubById.get(currentSaleObj.pubSaleRelation.toString()).pubName);
holder.tvSaleDescription.setText(currentSaleObj.saleDescription);
return convertView;
}
private class ChildView
{
private RobotoTextView tvPubName;
private RobotoTextView tvSaleDescription;
}
@Override
public int getCountForHeader(int position)
{
int RetVal = 0;
try
{
boolean isSaleTemp = getItem(position).isTemporarySale;
if(isSaleTemp)
{
RetVal = App.salesByType.get(headers[0]).size();
}
else
{
RetVal = App.salesByType.get(headers[1]).size();
}
}
catch (Exception e) {}
return RetVal;
}
@Override
public View getHeaderView(int position, View convertView, ViewGroup parent)
{
HeaderView holder;
String currentHeader = headers[position];
if(convertView == null)
{
holder = new HeaderView();
convertView = LayoutInflater.from(mContext).inflate(R.layout.sales_header_view, null);
holder.tvHeader = (RobotoTextView)convertView.findViewById(R.id.tv_header_text);
convertView.setTag(holder);
}
else
{
holder = (HeaderView)convertView.getTag();
}
holder.tvHeader.setText(currentHeader);
return convertView;
}
private class HeaderView
{
private RobotoTextView tvHeader;
}
@Override
public int getNumHeaders()
{
int RetVal = 0;
try
{
RetVal = App.salesByType.keySet().size();
}
catch (Exception e) {}
return RetVal;
}