Example #1
0
            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);
            }
Example #3
0
        // 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);
        }
Example #4
0
        // 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);
        }
Example #5
0
                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);
                    }
                }
Example #6
0
            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);
            }
Example #7
0
 public AvatarDownloader(DataViewHolder binding)
 {
     this.binding = binding;
 }
Example #8
0
            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);
            }