public override View GetView(int position, View convertView, ViewGroup parent) { AdapterList item = objectList[position]; View view = convertView; TextView Text; TextView Label; Switch Switch; string Key = item.GetFirstKey(); int LayoutID = item.GetLayoutID(Key); try { if (view == null) // no view to re-use, create new { view = context.LayoutInflater.Inflate(item.GetLayoutID(Key), null); } Label = view.FindViewById <TextView>(Resource.Id.Label); Label.SetText(item.GetLabel(Key), null); switch (LayoutID) { case Resource.Layout.CommonLabelSwitchViewer: Switch = view.FindViewById <Switch>(Resource.Id.Switch); Switch.Checked = item.GetBoolean(Key); break; case Resource.Layout.CommonSplitterViewer: case Resource.Layout.CommonSplitterSmallViewer: break; case Resource.Layout.CommonFloatingLabelEditViewer: Text = view.FindViewById <TextView>(Resource.Id.Text); Text.SetText(item.GetString(Key), null); if (string.IsNullOrEmpty(item.GetString(Key))) { Label.SetText("", null); } Text.Hint = item.GetLabel(Key); Text.TextChanged += (sender, e) => { Label.SetText(item.GetLabel(Key), null); item.SetString(Key, Text.Text); }; break; case Resource.Layout.CommonLabelTextViewer: case Resource.Layout.CommonLabelMultiLinesTextViewer: default: Text = view.FindViewById <TextView>(Resource.Id.Text); Text.SetText(item.GetString(Key), null); break; } return(view); } catch (Exception Ex) { Toast.MakeText(context, "CSIBaseDetailsAdapter -> GetView() -> " + Ex.Message, ToastLength.Short).Show(); return(null); } }