public override View GetView(int position, View convertView, ViewGroup parent) { // get item for selected view Item item = GetItem(position); // if cell is exists - reuse it, if not - create the new one from resource FoldingCell cell = (FoldingCell)convertView; ViewHolder viewHolder; if (cell == null) { viewHolder = new ViewHolder(); LayoutInflater vi = LayoutInflater.From(Context); cell = (FoldingCell)vi.Inflate(Resource.Layout.cell, parent, false); // binding view parts to view holder viewHolder.price = (TextView)cell.FindViewById(Resource.Id.title_price); viewHolder.time = (TextView)cell.FindViewById(Resource.Id.title_time_label); viewHolder.date = (TextView)cell.FindViewById(Resource.Id.title_date_label); viewHolder.fromAddress = (TextView)cell.FindViewById(Resource.Id.title_from_address); viewHolder.toAddress = (TextView)cell.FindViewById(Resource.Id.title_to_address); viewHolder.requestsCount = (TextView)cell.FindViewById(Resource.Id.title_requests_count); viewHolder.pledgePrice = (TextView)cell.FindViewById(Resource.Id.title_pledge); viewHolder.contentRequestBtn = (TextView)cell.FindViewById(Resource.Id.content_request_btn); cell.Tag = viewHolder; } else { // for existing cell set valid valid state(without animation) if (unfoldedIndexes.Contains(position)) { cell.Unfold(true); } else { cell.Fold(true); } viewHolder = (ViewHolder)cell.Tag; } // bind data from selected element to view through view holder viewHolder.price.Text = item.getPrice(); viewHolder.time.Text = item.getTime(); viewHolder.date.Text = item.getDate(); viewHolder.fromAddress.Text = item.getFromAddress(); viewHolder.toAddress.Text = item.getToAddress(); viewHolder.requestsCount.Text = item.getRequestsCount().ToString(); viewHolder.pledgePrice.Text = item.getPledgePrice(); // set custom btn handler for list item from that item if (item.getRequestBtnClickListener() != null) { viewHolder.contentRequestBtn.SetOnClickListener(item.getRequestBtnClickListener()); } else { // (optionally) add "default" handler if no handler found in item viewHolder.contentRequestBtn.SetOnClickListener(defaultRequestBtnClickListener); } return(cell); }
public FoldingCellStatusBinding(FoldingCell target) : base(target) { }