public override View GetView(int position, View convertView, ViewGroup parent) { var view = convertView; DeliveryAdapterViewHolder holder = null; if (view != null) { holder = view.Tag as DeliveryAdapterViewHolder; } if (holder == null) { holder = new DeliveryAdapterViewHolder(); var inflater = context.GetSystemService(Context.LayoutInflaterService).JavaCast <LayoutInflater>(); //replace with your item and your holder items //comment back in //view = inflater.Inflate(Resource.Layout.item, parent, false); // Adapt the REMmed-out boilerplate to make use of our bespoke DeliveryCell in ListView's inflation view = inflater.Inflate(Resource.Layout.DeliveryCell, parent, false); // set the holder's properties (see its modified definition below) to our text fields' values holder.Name = view.FindViewById <TextView>(Resource.Id.deliveryNameTextView); holder.Status = view.FindViewById <TextView>(Resource.Id.deliveryStatusTextView); //holder.Title = view.FindViewById<TextView>(Resource.Id.text); view.Tag = holder; } //fill in your items //holder.Title.Text = "new text here"; var delivery = deliveries[position]; // 'position' from signature of Adapter - ie for every cell, .... holder.Name.Text = delivery.Name; // set the name property of the adapter for the bespoke cell's text field switch (delivery.Status) { case 0: holder.Status.Text = "Awaiting delivery person"; break; case 1: holder.Status.Text = "Out for delivery"; break; case 2: holder.Status.Text = "Already delivered"; break; default: holder.Status.Text = "Delivery status unknown"; break; } return(view); }
public override View GetView(int position, View convertView, ViewGroup parent) { var view = convertView; DeliveryAdapterViewHolder holder = null; if (view != null) { holder = view.Tag as DeliveryAdapterViewHolder; } if (holder == null) { holder = new DeliveryAdapterViewHolder(); var inflater = context.GetSystemService(Context.LayoutInflaterService).JavaCast <LayoutInflater>(); //replace with your item and your holder items //comment back in view = inflater.Inflate(Resource.Layout.DeliveryCell, parent, false); holder.Name = view.FindViewById <TextView>(Resource.Id.deliveryNameTextView); holder.Status = view.FindViewById <TextView>(Resource.Id.deliveryStatusTextView); view.Tag = holder; } //fill in your items var delivery = deliveries[position]; holder.Name.Text = delivery.Name; switch (delivery.Status) { case 0: holder.Status.Text = "waiting for delivery person"; break; case 1: holder.Status.Text = "in delivery"; break; case 2: holder.Status.Text = "delivered"; break; } return(view); }