Xamarin Android ListView control, xamarinandroid
The ListView control is commonly used in projects. The example is as follows:
Create the listitem class, eg;
public class ColorItem { public string ColorName { get; set; } public string Code { get; set; } public Android.Graphics.Color Color { get; set; } }
Create Adapter class:
The Adapter class must implement BaseAdapter and be specified in GetView method to customize the page of ListItem. Obtain the value of the control in listitem.
public class ColorAdapter : BaseAdapter<ColorItem> { List<ColorItem> items; Activity context; public ColorAdapter(Activity context, List<ColorItem> items) : base() { this.context = context; this.items = items; } public override ColorItem this[int position] => items[position]; public override int Count => items.Count; public override long GetItemId(int position) { return position; } public override View GetView(int position, View convertView, ViewGroup parent) { var item = items[position]; View view = convertView; if (null == view) { view = context.LayoutInflater.Inflate(Resource.Layout.ListItem,null); } view.FindViewById<TextView>(Resource.Id.textView1).Text = item.ColorName; view.FindViewById<TextView>(Resource.Id.textView2).Text = item.Code; view.FindViewById<ImageView>(Resource.Id.imageView1).SetBackgroundColor(item.Color); return view; } }
Add the ListView control in Main. axml. The background code is as follows;
public class MainActivity : Activity { List<ColorItem> colorItems = new List<ColorItem>(); ListView listView = null; protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); listView = FindViewById<ListView>(Resource.Id.myListView); colorItems.Add(new ColorItem() { Color = Android.Graphics.Color.DarkRed,ColorName="Dark Red",Code="8B0000"}); colorItems.Add(new ColorItem() { Color = Android.Graphics.Color.SlateBlue, ColorName = "Slate Blue", Code = "Ga5ACD" }); colorItems.Add(new ColorItem() { Color = Android.Graphics.Color.ForestGreen, ColorName = "Forest Green", Code = "228B22" }); listView.Adapter = new ColorAdapter(this,colorItems); } }
The running effect is as follows: