Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 public FoldingCellStatusBinding(FoldingCell target)
     : base(target)
 {
 }