public override View GetView(int position, View convertView, ViewGroup parent) { DataViewHolder holder = null; if (convertView == null) { convertView = LayoutInflater.From(mContext).Inflate(Resource.Layout.item_layout, null, false); holder = new DataViewHolder(); holder.ll = convertView.FindViewById <LinearLayout>(Resource.Id.ll); holder.txtDescription = convertView.FindViewById <TextView>(Resource.Id.txtDescription); holder.ms = convertView.FindViewById <Switch>(Resource.Id.sw); convertView.Tag = holder; } else { holder = convertView.Tag as DataViewHolder; } holder.ms.Tag = position; // init holder.txtDescription.Text = mitems[position].position; holder.ms.Focusable = false; holder.ms.Checked = mitems[position].isCheck; holder.ms.CheckedChange += Ms_CheckedChange; Log.Error("position : check", (int)holder.ms.Tag + " : " + mitems[position].isCheck); return(convertView); }
public override View GetView(int position, View convertView, ViewGroup parent) { DataViewHolder holder = null; if (convertView == null) { convertView = LayoutInflater.From(mContext).Inflate(Resource.Layout.CoinList, null, false); holder = new DataViewHolder(); holder.tv = convertView.FindViewById <TextView>(Resource.Id.CoinName); holder.iv = convertView.FindViewById <ImageView>(Resource.Id.imageView1); holder.cb = convertView.FindViewById <CheckBox>(Resource.Id.checkBox1); convertView.Tag = holder; } else { holder = convertView.Tag as DataViewHolder; } holder.cb.Tag = position; holder.tv.Text = mitems[position].Name; holder.cb.Focusable = false; holder.cb.Checked = mitems[position].bl; holder.iv.SetImageResource(Resource.Drawable.dapao); // holder.tv.SetTextColor(mContext.GetColorStateList(Resource.Color.filename)); //Add CheckedChange event to detect the CheckBox's click event and change the mitems's CheckBox's state. holder.cb.CheckedChange += Cb_CheckedChange; return(convertView); }
// Replace the contents of a view (invoked by the layout manager) public override void OnBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) { string item = items[position]; viewHolderV2 = (DataViewHolder)viewHolder; // Replace the contents of the view with that element //var holder = (DataViewHolder)viewHolder; //holder.TextView.Text = items[position]; //holder.setDataDetails(item); ((DataViewHolder)viewHolder).setDataDetails(item); }
// Create new views (invoked by the layout manager) public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType) { //Setup your layout here var itemView = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.my_recycler_item, parent, false); //var id = Resource.Layout.__YOUR_ITEM_HERE; //itemView = LayoutInflater.From(parent.Context). // Inflate(id, parent, false); var vh = new DataViewHolder(itemView, OnClick, OnLongClick); return(vh); }
public void HandleDownloaded(BitmapType bitmap) { DataViewHolder holder = (DataViewHolder)binding; if (this != holder.CurrentDownloader) { Logger.Trace("ChatAdapter original view is no longer bound"); return; } object temp = bitmap; if (bitmap is Drawable) { holder.AvatarImageView.SetImageDrawable((Drawable)temp); } else { holder.AvatarImageView.SetImageBitmap((Bitmap)temp); } }
public override View GetView(int position, View convertView, ViewGroup parent) { DataViewHolder holder = null; if (convertView == null) { convertView = LayoutInflater.From(mContext).Inflate(Resource.Layout.item_layout, null, false); holder = new DataViewHolder(); holder.txtDescription = convertView.FindViewById <TextView>(Resource.Id.txtDescription); holder.txtDescription.Click += delegate { Log.Error("lv", "" + (int)holder.txtDescription.Tag); mList.Add((int)holder.txtDescription.Tag); holder.txtDescription.SetBackgroundColor(Color.Red); }; convertView.Tag = holder; } else { holder = convertView.Tag as DataViewHolder; } holder.txtDescription.Tag = position; Log.Error("position", "" + position); holder.txtDescription.Text = mitems[position]; if (!mList.Contains(position)) { Log.Error("-----", "--------------"); holder.txtDescription.SetBackgroundColor(Color.Transparent); } else { Log.Error("++++", "+++++++++++++"); holder.txtDescription.SetBackgroundColor(Color.Red); } return(convertView); }
public AvatarDownloader(DataViewHolder binding) { this.binding = binding; }
public override View GetView(int position, View convertView, ViewGroup parent) { View view = convertView; // re-use an existing view, if one is available ViewHolder holder = null; HeaderViewHolder headerHolder = null; DataViewHolder dataHolder = null; bool firstTimeResourceLoaded = false; ListItemType @type = (ListItemType)GetItemViewType(position); if (view == null) // otherwise create a new one { firstTimeResourceLoaded = true; { switch (@type) { case ListItemType.LeftHeader: view = context.LayoutInflater.Inflate(Resource.Layout.ChatLeftSideHeaderListItem, null); holder = headerHolder = new HeaderViewHolder(); headerHolder.Name = view.FindViewById <TextView> (Resource.Id.nameTextView); headerHolder.Time = view.FindViewById <TextView> (Resource.Id.timeTextView); break; case ListItemType.RightHeader: view = context.LayoutInflater.Inflate(Resource.Layout.ChatRightSideHeaderListItem, null); holder = headerHolder = new HeaderViewHolder(); headerHolder.Name = view.FindViewById <TextView> (Resource.Id.nameTextView); headerHolder.Time = view.FindViewById <TextView> (Resource.Id.timeTextView); break; case ListItemType.Left: view = context.LayoutInflater.Inflate(Resource.Layout.ChatLeftSideListItem, null); holder = dataHolder = new DataViewHolder(); dataHolder.AvatarImageView = view.FindViewById <ImageView> (Resource.Id.avatarImageView); dataHolder.Message = view.FindViewById <TextView> (Resource.Id.bubbleTextView); break; case ListItemType.Right: view = context.LayoutInflater.Inflate(Resource.Layout.ChatRightSideListItem, null); holder = dataHolder = new DataViewHolder(); dataHolder.AvatarImageView = view.FindViewById <ImageView> (Resource.Id.avatarImageView); dataHolder.Message = view.FindViewById <TextView> (Resource.Id.bubbleTextView); break; case ListItemType.Margin: view = context.LayoutInflater.Inflate(Resource.Layout.ChatMarginHeaderListItem, null); break; default: throw new NotImplementedException(); } } if (null != dataHolder) { dataHolder.OriginalEmptyAvatarDrawable = dataHolder.AvatarImageView.Drawable; dataHolder.AvatarWidth = dataHolder.AvatarImageView.LayoutParameters.Width; dataHolder.AvatarHeight = dataHolder.AvatarImageView.LayoutParameters.Height; // if these fail, you'll need to recode the source to delay the fetching of the avatar until after the render figures out the exact dimensions of the image Contract.Assume(((dataHolder.AvatarWidth != ViewGroup.LayoutParams.MatchParent) && (dataHolder.AvatarWidth != ViewGroup.LayoutParams.WrapContent))); Contract.Assume(((dataHolder.AvatarHeight != ViewGroup.LayoutParams.MatchParent) && (dataHolder.AvatarHeight != ViewGroup.LayoutParams.WrapContent))); } // holder.LabelTextView = view.FindViewById<TextView> (Resource.Id.labelTextView); view.Tag = holder; } else { holder = view.Tag as ViewHolder; switch (@type) { case ListItemType.LeftHeader: case ListItemType.RightHeader: holder = headerHolder = (HeaderViewHolder)view.Tag; break; case ListItemType.Left: case ListItemType.Right: holder = dataHolder = (DataViewHolder)view.Tag; break; case ListItemType.Margin: break; default: throw new NotImplementedException(); } } int person = 0; { switch (position % (7 * 2)) { case 0: headerHolder.Name.Text = "Alice Apples"; headerHolder.Time.Text = "2014-02-08 11:11 am"; break; case 1: dataHolder.Message.Text = "Hello?"; break; case 2: headerHolder.Name.Text = "Bob Baker"; headerHolder.Time.Text = "2014-02-08 11:12 am"; break; case 3: person = 1; dataHolder.Message.Text = "Hello!"; break; case 4: break; case 5: person = 1; dataHolder.Message.Text = "Wassup?"; break; case 6: headerHolder.Name.Text = "Alice Apples"; headerHolder.Time.Text = "2014-02-08 11:12 am"; break; case 7: dataHolder.Message.Text = "Can you come get me at the steak house? My date turned out to be a real jerk."; break; case 8: headerHolder.Name.Text = "Bob Baker"; headerHolder.Time.Text = "2014-02-08 11:13 am"; break; case 9: person = 1; dataHolder.Message.Text = "Of course"; break; case 10: break; case 11: person = 1; dataHolder.Message.Text = "Are you somewhere warm? It's sure cold out this time of the year."; break; case 12: headerHolder.Name.Text = "Alice Apples"; headerHolder.Time.Text = "2014-02-08 11:14 am"; break; case 13: dataHolder.Message.Text = "Yes, I am warm and safe. Thanks for asking."; break; default: break; } } if (null != dataHolder) { dataHolder.CurrentDownloader = new AvatarDownloader(dataHolder); BitmapType bitmap = downloader.FetchNowOrAsyncDownload( bogusUrls [person], dataHolder.AvatarWidth, dataHolder.AvatarHeight, dataHolder.CurrentDownloader.HandleDownloaded ); if (null != bitmap) { dataHolder.AvatarImageView.SetImageDrawable(bitmap); } else { if (!firstTimeResourceLoaded) { dataHolder.AvatarImageView.SetImageDrawable(dataHolder.OriginalEmptyAvatarDrawable); // reset back to original drawable } } } return(view); }