async Task <bool> RenewArticleCommentUI(List <ArticleCommentModel> comments, bool isClear) { if (comments == null || comments.Count == 0) { return(await Task.FromResult(false)); } if (isClear == true) { Items.Clear(); } var items = new ObservableCollection <CommentsItem>(Items); await Task.Run(() => { foreach (var comment in comments) { var likesCountString = comment.likesCount > 0 ? comment.likesCount.ToString() : ""; var avatar = comment.author.Avatar.Template. Replace("{id}", comment.author.Avatar.Id); avatar = avatar.Replace("{size}", "s"); items.Add(new CommentsItem() { UserImage = avatar, UserName = comment.author.Name, LikesCountString = likesCountString, Comment = HtmlUtils.ReplaceHtmlTag(comment.content, -1), PublishTime = DateTimeUtils. CommonTime(System.Convert.ToDateTime(comment.createdTime)), }); } offset += comments.Count; }); Items.ReplaceRange(items); return(await Task.FromResult(true)); }
async Task <bool> RenewDailyCommentUI(List <DailyCommentModel> comments, bool isClear) { if (comments == null || comments.Count == 0) { return(await Task.FromResult(false)); } if (isClear == true) { Items.Clear(); } var items_new = new ObservableCollection <CommentsItem>(Items); for (int i = offset; i < offset + 10; ++i) { if (i >= comments.Count) { offset += 10; return(false); } var comment = comments[i]; var likesCountString = comment.likes > 0 ? comment.likes.ToString() : ""; items_new.Add(new CommentsItem() { UserImage = comment.avatar, UserName = comment.author, LikesCountString = likesCountString, Comment = HtmlUtils.ReplaceHtmlTag(comment.content, -1), PublishTime = DateTimeUtils.CommonTime(GetTime(comment.time.ToString())), }); } Items.ReplaceRange(items_new); offset += 10; return(true); }
protected override void ConvertAsync(RecyclerView.ViewHolder holder, NewsModel model) { var baseHolder = holder as BaseAdapter.BaseViewHolder; var linearLayout = (baseHolder.GetView(Resource.Id.linearLayout) as LinearLayout); linearLayout.Tag = model.Id.ToString(); linearLayout.SetOnClickListener(this); (baseHolder.GetView(Resource.Id.txtTitle) as TextView).Text = model.Title; (baseHolder.GetView(Resource.Id.txtDscription) as TextView).Text = model.Summary; (baseHolder.GetView(Resource.Id.txtPostdate) as TextView).Text = DateTimeUtils.CommonTime(Convert.ToDateTime(model.DateAdded)); (baseHolder.GetView(Resource.Id.txtDiggCount) as TextView).Text = model.DiggCount + " " + context.Resources.GetString(Resource.String.digg); (baseHolder.GetView(Resource.Id.txtViewCount) as TextView).Text = model.ViewCount + " " + context.Resources.GetString(Resource.String.read); (baseHolder.GetView(Resource.Id.txtCommentCount) as TextView).Text = model.CommentCount + " " + context.Resources.GetString(Resource.String.comment); try { var icon = model.TopicIcon; if (icon.IndexOf("https://") == -1) { icon = "https:" + icon; } Picasso.With(context) .Load(icon) .Placeholder(Resource.Drawable.placeholder) .Error(Resource.Drawable.placeholder) .Into(baseHolder.GetView(Resource.Id.llAvatar) as ImageView); } catch (Exception) { } }
protected override void ConvertAsync(RecyclerView.ViewHolder holder, ArticlesModel model) { var baseHolder = holder as BaseAdapter.BaseViewHolder; var linearLayout = (baseHolder.GetView(Resource.Id.linearLayout) as LinearLayout); linearLayout.Tag = model.Id.ToString(); linearLayout.SetOnClickListener(this); (baseHolder.GetView(Resource.Id.txtTitle) as TextView).Text = model.Title; (baseHolder.GetView(Resource.Id.txtDscription) as TextView).Text = model.Description; (baseHolder.GetView(Resource.Id.txtPostdate) as TextView).Text = DateTimeUtils.CommonTime(Convert.ToDateTime(model.PostDate)); (baseHolder.GetView(Resource.Id.txtDiggCount) as TextView).Text = model.DiggCount + " " + context.Resources.GetString(Resource.String.digg); (baseHolder.GetView(Resource.Id.txtViewCount) as TextView).Text = model.ViewCount + " " + context.Resources.GetString(Resource.String.read); (baseHolder.GetView(Resource.Id.txtCommentCount) as TextView).Text = model.CommentCount + " " + context.Resources.GetString(Resource.String.comment); if (model.Author != null) { (baseHolder.GetView(Resource.Id.txtAuthor) as TextView).Text = HtmlUtils.GetHtml(model.Author).ToString(); try { Picasso.With(context) .Load(model.Avatar) .Placeholder(Resource.Drawable.placeholder) .Error(Resource.Drawable.placeholder) .Transform(new CircleTransform()) .Into(baseHolder.GetView(Resource.Id.llAvatar) as ImageView); } catch (Exception ex) { } } }
void RenewArticlesUI(List <ArticleModel> models, bool isRefresh) { if (models == null) { return; } if (models.Count <= 0) { return; } if (isRefresh == true) { Items.Clear(); } var items = new ObservableCollection <ArticleItem>(Items); foreach (var model in models) { string avatar = ""; if (model.Author.Avatar != null && model.Author.Avatar.Template != null && model.Author.Avatar.Id != null) { avatar = model.Author.Avatar.Template.Replace("{id}", model.Author.Avatar.Id); avatar = avatar.Replace("{size}", "s"); } string badgeImage = ""; if (model.Author.IsOrg) { badgeImage = "identity.png"; } else if (model.Author.Badge != null) { if (model.Author.Badge.Identity != null) { badgeImage = "identity.png"; } else if (model.Author.Badge.Best_answerer != null) { badgeImage = "bestanswerer.png"; } } items.Add(new ArticleItem() { Title = model.Title, Slug = model.Slug, UserImage = avatar, UserName = model.Author.Name, TitleImage = model.TitleImage, BadgeImage = badgeImage, UpdateTimeString = DateTimeUtils.CommonTime(Convert.ToDateTime(model.PublishedTime)), Summary = HtmlUtils.ReplaceHtmlTag(model.Content, 70) + "...", IsHasTitleImage = model.TitleImage != "", }); } Items.ReplaceRange(items); offset += Items.Count; }
private void BindView(StatusModel model) { handler.Post(() => { toolbar.Title = Html.FromHtml(model.UserDisplayName).ToString() + "µÄÉÁ´æ"; userName.Text = Html.FromHtml(model.UserDisplayName).ToString(); txtPostdate.Text = DateTimeUtils.CommonTime(Convert.ToDateTime(model.DateAdded)); if (model.CommentCount > 0) { commentCount.Text = model.CommentCount + " " + Resources.GetString(Resource.String.comment); } imgDelete.SetOnClickListener(this); if (model.IsPrivate) { imgPrivate.Visibility = ViewStates.Visible; try { Picasso.With(this) .Load(Resource.Drawable.isPrivate) .Into(imgPrivate); } catch { } } else { imgPrivate.Visibility = ViewStates.Gone; } if (model.IsLucky) { var Content = model.Content + " "; var spanText = new SpannableString(Html.FromHtml(Content)); spanText.SetSpan(new CenteredImageSpan(this, Resource.Drawable.luckystar), spanText.Length() - 1, spanText.Length(), SpanTypes.InclusiveExclusive); txtBody.SetText(spanText, TextView.BufferType.Spannable); } else { txtBody.SetText(Html.FromHtml(model.Content), TextView.BufferType.Spannable); } try { Picasso.With(this) .Load(model.UserIconUrl) .Placeholder(Resource.Drawable.placeholder) .Error(Resource.Drawable.placeholder) .Transform(new CircleTransform()) .Into(imgUserUrl); } catch { } }); }
public void GetClientArticleSuccess(ArticlesModel model) { handler.Post(() => { article = model; txtTitle.Text = article.Title; txtAuthor.Text = Html.FromHtml(article.Author).ToString(); txtPostdate.Text = DateTimeUtils.CommonTime(article.PostDate); if (article.DiggCount > 0) { txtDigg.Text = article.DiggCount.ToString(); } if (article.ViewCount > 0) { txtRead.Text = article.ViewCount.ToString(); } if (article.CommentCount > 0) { txtComments.Text = article.CommentCount.ToString(); } (txtComments.Parent as FrameLayout).Click += delegate { ArticleCommentsActivity.Start(this, article.BlogApp, article.Id); }; (txtBookmark.Parent as FrameLayout).Click += delegate { var linkurl = article.Url; var title = article.Title + " - " + article.Author + " - ²©¿ÍÔ°"; BookmarkAddActivity.Start(this, linkurl, title, true); }; if (article.Body == null || article.Body == "") { OnRefresh(); } else { GetServiceArticleSuccess(model); } try { Picasso.With(this) .Load(article.Avatar) .Placeholder(Resource.Drawable.placeholder) .Error(Resource.Drawable.placeholder) .Transform(new CircleTransform()) .Into(imgAvatar); } catch (Exception) { } }); }
protected override void ConvertAsync(RecyclerView.ViewHolder holder, QuestionsModel model) { var baseHolder = holder as BaseAdapter.BaseViewHolder; var linearLayout = (baseHolder.GetView(Resource.Id.linearLayout) as LinearLayout); linearLayout.Tag = model.Qid.ToString(); linearLayout.SetOnClickListener(this); (baseHolder.GetView(Resource.Id.txtTitle) as TextView).Text = model.Title; (baseHolder.GetView(Resource.Id.txtSummary) as TextView).Text = model.Summary; (baseHolder.GetView(Resource.Id.txtDateAdded) as TextView).Text = DateTimeUtils.CommonTime(Convert.ToDateTime(model.DateAdded)); (baseHolder.GetView(Resource.Id.txtAnswerCount) as TextView).Text = model.AnswerCount + " " + context.Resources.GetString(Resource.String.answer); (baseHolder.GetView(Resource.Id.txtViewCount) as TextView).Text = model.ViewCount + " " + context.Resources.GetString(Resource.String.read); var txtTag = (baseHolder.GetView(Resource.Id.txtTag) as TextView); if (model.Tags != null && model.Tags.Length > 0) { txtTag.Visibility = ViewStates.Visible; txtTag.Text = " " + model.Tags.Replace(',', ' '); } else { txtTag.Visibility = ViewStates.Gone; } var txtGold = (baseHolder.GetView(Resource.Id.txtGold) as TextView); if (model.Award > 0) { txtGold.Visibility = ViewStates.Visible; txtGold.Text = model.Award.ToString(); } else { txtGold.Visibility = ViewStates.Gone; } if (model.QuestionUserInfo != null && model.QuestionUserInfo.UserID > 0) { (baseHolder.GetView(Resource.Id.txtUserName) as TextView).Text = HtmlUtils.GetHtml(model.QuestionUserInfo.UserName).ToString(); try { Picasso.With(context) .Load("https://pic.cnblogs.com/face/" + model.QuestionUserInfo.IconName) .Placeholder(Resource.Drawable.placeholder) .Error(Resource.Drawable.placeholder) .Transform(new CircleTransform()) .Into(baseHolder.GetView(Resource.Id.imgIconName) as ImageView); } catch (Exception) { } } }
protected override void ConvertAsync(RecyclerView.ViewHolder holder, NewsCommentModel model) { var baseHolder = holder as BaseAdapter.BaseViewHolder; var itemview = baseHolder.GetConvertView(); itemview.Tag = model.CommentID.ToString(); (baseHolder.GetView(Resource.Id.username) as TextView).Text = HtmlUtils.GetHtml(model.UserName).ToString(); (baseHolder.GetView(Resource.Id.comment) as TextView).Text = HtmlUtils.GetHtml(model.CommentContent).ToString(); (baseHolder.GetView(Resource.Id.dateAdded) as TextView).Text = DateTimeUtils.CommonTime(model.DateAdded); (baseHolder.GetView(Resource.Id.floor) as TextView).Text = model.Floor + context.Resources.GetString(Resource.String.floor1); if (model.AgreeCount > 0) { (baseHolder.GetView(Resource.Id.agreeCount) as TextView).Text = " " + model.AgreeCount.ToString(); } if (model.AntiCount > 0) { (baseHolder.GetView(Resource.Id.antiCount) as TextView).Text = " " + model.AntiCount.ToString(); } (baseHolder.GetView(Resource.Id.progressBar) as ProgressBar).Visibility = ViewStates.Gone; var imgDelete = (baseHolder.GetView(Resource.Id.imgDelete) as ImageButton); var imgEdit = (baseHolder.GetView(Resource.Id.imgEdit) as ImageButton); if (model.CommentID > 0 && User != null && model.UserName == User.DisplayName) { imgDelete.Visibility = ViewStates.Visible; imgDelete.Tag = model.CommentID.ToString(); imgDelete.SetOnClickListener(this); imgEdit.Visibility = ViewStates.Visible; imgEdit.Tag = baseHolder.AdapterPosition.ToString(); imgEdit.SetOnClickListener(this); } else { imgDelete.Visibility = ViewStates.Gone; imgEdit.Visibility = ViewStates.Gone; } try { var face = model.FaceUrl == "" ? "https://pic.cnblogs.com/face/sample_face.gif" : model.FaceUrl; Picasso.With(context) .Load(face) .Placeholder(Resource.Drawable.placeholder) .Error(Resource.Drawable.placeholder) .Transform(new CircleTransform()) .Into(baseHolder.GetView(Resource.Id.faceUrl) as ImageView); } catch (Exception) { } }
protected override void ConvertAsync(RecyclerView.ViewHolder holder, SearchModel model) { var baseHolder = holder as BaseAdapter.BaseViewHolder; var linearLayout = (baseHolder.GetView(Resource.Id.linearLayout) as LinearLayout); if (model.Id == null) { linearLayout.Tag = model.Uri.ToString(); } else { linearLayout.Tag = model.Id.ToString(); } linearLayout.SetOnClickListener(this); (baseHolder.GetView(Resource.Id.txtTitle) as TextView).Text = HtmlUtils.GetHtml(model.Title).ToString(); (baseHolder.GetView(Resource.Id.txtDscription) as TextView).Text = HtmlUtils.GetHtml(model.Content).ToString(); (baseHolder.GetView(Resource.Id.txtPostdate) as TextView).Text = DateTimeUtils.CommonTime(Convert.ToDateTime(model.PublishTime)); (baseHolder.GetView(Resource.Id.txtDiggCount) as TextView).Text = model.VoteTimes + " " + context.Resources.GetString(Resource.String.digg); (baseHolder.GetView(Resource.Id.txtViewCount) as TextView).Text = model.ViewTimes + " " + context.Resources.GetString(Resource.String.read); (baseHolder.GetView(Resource.Id.txtCommentCount) as TextView).Text = model.CommentTimes + " " + context.Resources.GetString(Resource.String.comment); var txtAuthor = (baseHolder.GetView(Resource.Id.txtAuthor) as TextView); if (model.UserName != null) { (txtAuthor.Parent as View).Visibility = ViewStates.Visible; txtAuthor.Text = model.UserName; try { Picasso.With(context) .Load(model.UserAlias) .Placeholder(Resource.Drawable.placeholder) .Error(Resource.Drawable.placeholder) .Transform(new CircleTransform()) .Into(baseHolder.GetView(Resource.Id.llAvatar) as ImageView); } catch (Exception ex) { } } else { (txtAuthor.Parent as View).Visibility = ViewStates.Gone; } }
protected override async void ConvertAsync(RecyclerView.ViewHolder holder, QuestionCommentsModel model) { var baseHolder = holder as BaseAdapter.BaseViewHolder; var itemview = baseHolder.GetConvertView(); itemview.Tag = model.CommentID; (baseHolder.GetView(Resource.Id.txtDateAdded) as TextView).Text = DateTimeUtils.CommonTime(Convert.ToDateTime(model.DateAdded)); (baseHolder.GetView(Resource.Id.txtContent) as TextView).SetText(HtmlUtils.GetHtml(model.ConvertedContent == null? model.Content: model.ConvertedContent), TextView.BufferType.Spannable); var imgUserUrl = (baseHolder.GetView(Resource.Id.imgIconName) as ImageView); var imgDelete = (baseHolder.GetView(Resource.Id.imgDelete) as ImageButton); (baseHolder.GetView(Resource.Id.progressBar) as ProgressBar).Visibility = ViewStates.Gone; imgDelete.Tag = model.CommentID; imgDelete.SetOnClickListener(this); if (User != null && User.UserId == model.PostUserInfo.UCUserID) { User.Score = model.PostUserInfo.QScore; await SQLiteUtils.Instance().UpdateUser(User); imgDelete.Visibility = ViewStates.Visible; } else { imgDelete.Visibility = ViewStates.Gone; } if (model.PostUserInfo != null && model.PostUserInfo.UserID > 0) { (baseHolder.GetView(Resource.Id.txtUserName) as TextView).Text = HtmlUtils.GetHtml(model.PostUserInfo.UserName).ToString(); (baseHolder.GetView(Resource.Id.txtScore) as TextView).Text = HtmlUtils.GetScoreName(model.PostUserInfo.QScore) + " ¡¤ " + model.PostUserInfo.QScore + "Ô°¶¹"; try { Picasso.With(context) .Load("https://pic.cnblogs.com/face/" + model.PostUserInfo.IconName) .Placeholder(Resource.Drawable.placeholder) .Error(Resource.Drawable.placeholder) .Transform(new CircleTransform()) .Into(imgUserUrl); } catch { } } }
protected override void ConvertAsync(RecyclerView.ViewHolder holder, KbArticlesModel model) { var baseHolder = holder as BaseAdapter.BaseViewHolder; var linearLayout = (baseHolder.GetView(Resource.Id.linearLayout) as LinearLayout); linearLayout.Tag = model.Id.ToString(); linearLayout.SetOnClickListener(this); (baseHolder.GetView(Resource.Id.txtSummary) as TextView).Text = model.Summary; (baseHolder.GetView(Resource.Id.txtPostdate) as TextView).Text = DateTimeUtils.CommonTime(Convert.ToDateTime(model.DateAdded)); (baseHolder.GetView(Resource.Id.txtDiggCount) as TextView).Text = model.DiggCount + " " + context.Resources.GetString(Resource.String.digg); (baseHolder.GetView(Resource.Id.txtViewCount) as TextView).Text = model.ViewCount + " " + context.Resources.GetString(Resource.String.read); var Title = (baseHolder.GetView(Resource.Id.txtTitle) as TextView); Title.Text = model.Title; if (model.Author != null) { Title.Text += " - " + Html.FromHtml(model.Author).ToString(); } }
public void GetClientKbArticleSuccess(KbArticlesModel model) { if (model != null) { kbarticle = model; toolbar.Title = model.Title; if (model.Author != null) { toolbar.Title += " - " + HtmlUtils.GetHtml(model.Author).ToString(); } txtPostdate.Text = "发布于:" + DateTimeUtils.CommonTime(kbarticle.DateAdded); if (kbarticle.DiggCount > 0) { txtDigg.Text = kbarticle.DiggCount.ToString(); } if (kbarticle.ViewCount > 0) { txtRead.Text = kbarticle.ViewCount.ToString(); } (txtComments.Parent as FrameLayout).Click += delegate { Toast.MakeText(this, "很抱歉,暂未开放此功能。", ToastLength.Short).Show(); }; (txtBookmark.Parent as FrameLayout).Click += delegate { var linkurl = "http://kb.cnblogs.com/page/" + kbarticle.Id + "/"; var title = kbarticle.Title + "_知识库_博客园"; BookmarkAddActivity.Start(this, linkurl, title, true); }; if (kbarticle.Body == null || kbarticle.Body == "") { OnRefresh(); } else { GetServiceKbArticleSuccess(model); } } }
public void GetClientNewsSuccess(NewsModel model) { if (model != null) { news = model; toolbar.Title = model.Title; txtPostdate.Text = "发布于:" + DateTimeUtils.CommonTime(news.DateAdded); if (news.DiggCount > 0) { txtDigg.Text = news.DiggCount.ToString(); } if (news.ViewCount > 0) { txtRead.Text = news.ViewCount.ToString(); } if (news.CommentCount > 0) { txtComments.Text = news.CommentCount.ToString(); } (txtComments.Parent as FrameLayout).Click += delegate { NewsCommentsActivity.Start(this, news.Id); }; (txtBookmark.Parent as FrameLayout).Click += delegate { var linkurl = "https://news.cnblogs.com/n/" + news.Id + "/"; var title = news.Title + "_IT新闻_博客园"; BookmarkAddActivity.Start(this, linkurl, title, true); }; if (news.Body == null || news.Body == "") { OnRefresh(); } else { GetServiceNewsSuccess(model); } } }
protected override void ConvertAsync(RecyclerView.ViewHolder holder, ArticleCommentModel model) { var baseHolder = holder as BaseAdapter.BaseViewHolder; (baseHolder.GetView(Resource.Id.author) as TextView).Text = HtmlUtils.GetHtml(model.Author).ToString(); (baseHolder.GetView(Resource.Id.body) as TextView).Text = HtmlUtils.GetHtml(model.Body).ToString(); (baseHolder.GetView(Resource.Id.createAt) as TextView).Text = DateTimeUtils.CommonTime(Convert.ToDateTime(model.DateAdded)); (baseHolder.GetView(Resource.Id.floor) as TextView).Text = model.Floor + context.Resources.GetString(Resource.String.floor1); try { var face = model.FaceUrl == "" ? "https://pic.cnblogs.com/face/sample_face.gif" : model.FaceUrl; Picasso.With(context) .Load(face) .Placeholder(Resource.Drawable.placeholder) .Error(Resource.Drawable.placeholder) .Transform(new CircleTransform()) .Into(baseHolder.GetView(Resource.Id.avatar) as ImageView); } catch (Exception) { } }
public override async void OnBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) { int viewType = viewHolder.ItemViewType; switch (viewType) { case LoadingView: AddLoadMore(viewHolder); break; case FooterView: break; default: var item = (ItemViewHolder)viewHolder; var count = List.Count; var model = List[position]; item.author.Text = model.author.Name; item.content.Text = model.content; item.createAt.Text = DateTimeUtils.CommonTime(Convert.ToDateTime(model.createdTime)); if (model.likesCount > 0) { item.upCount.Text = " " + model.likesCount.ToString(); } var avatar = model.author.Avatar.Template.Replace("{id}", model.author.Avatar.Id); avatar = avatar.Replace("{size}", "s"); await ImageService.Instance.LoadUrl(avatar) .Retry(3, 200) .DownSample(40, 40) .Transform(new CircleTransformation()) .LoadingPlaceholder("ic_placeholder.png", ImageSource.ApplicationBundle) .ErrorPlaceholder("ic_placeholder.png", ImageSource.ApplicationBundle) .IntoAsync(item.avatar); break; } }
protected override void ConvertAsync(RecyclerView.ViewHolder holder, StatusCommentsModel model) { var baseHolder = holder as BaseAdapter.BaseViewHolder; var itemview = baseHolder.GetConvertView(); itemview.Tag = model.Id; (baseHolder.GetView(Resource.Id.txtUserName) as TextView).Text = Html.FromHtml(model.UserDisplayName).ToString(); (baseHolder.GetView(Resource.Id.txtPostdate) as TextView).Text = DateTimeUtils.CommonTime(Convert.ToDateTime(model.DateAdded)); (baseHolder.GetView(Resource.Id.txtContent) as TextView).SetText(Html.FromHtml(model.Content), TextView.BufferType.Spannable); var imgUserUrl = (baseHolder.GetView(Resource.Id.imgUserUrl) as ImageView); (baseHolder.GetView(Resource.Id.progressBar) as ProgressBar).Visibility = ViewStates.Gone; var imgDelete = (baseHolder.GetView(Resource.Id.imgDelete) as ImageButton); imgDelete.Tag = model.Id; imgDelete.SetOnClickListener(this); if (User != null && User.UserId == model.UserGuid && model.Id > 0) { imgDelete.Visibility = ViewStates.Visible; } else { imgDelete.Visibility = ViewStates.Gone; } try { Picasso.With(context) .Load(model.UserIconUrl) .Placeholder(Resource.Drawable.placeholder) .Error(Resource.Drawable.placeholder) .Transform(new CircleTransform()) .Into(imgUserUrl); } catch { } }
public override async void OnBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) { int viewType = viewHolder.ItemViewType; switch (viewType) { case LoadingView: AddLoadMore(viewHolder); break; case FooterView: break; default: var item = (ItemViewHolder)viewHolder; var model = List[position]; item.ItemView.Tag = model.Slug; item.ItemView.SetOnClickListener(this); item.title.Text = model.Title; if (model.Author != null) { item.name.Text = model.Author.Name; if (model.Author.IsOrg) { item.org.Visibility = ViewStates.Visible; item.org.SetImageResource(Resource.Drawable.identity); } else { if (model.Author.Badge != null) { item.org.Visibility = ViewStates.Visible; if (model.Author.Badge.Identity != null) { item.org.SetImageResource(Resource.Drawable.identity); } else if (model.Author.Badge.Best_answerer != null) { item.org.SetImageResource(Resource.Drawable.bestanswerer); } else { item.org.Visibility = ViewStates.Gone; } } else { item.org.Visibility = ViewStates.Gone; } } if (model.Author.Avatar != null && model.Author.Avatar.Template != null && model.Author.Avatar.Id != null) { var avatar = model.Author.Avatar.Template.Replace("{id}", model.Author.Avatar.Id); avatar = avatar.Replace("{size}", "s"); try { await ImageService.Instance.LoadUrl(avatar) .Retry(3, 200) .DownSample(40, 40) .Transform(new CircleTransformation()) .LoadingPlaceholder("ic_placeholder.png", ImageSource.ApplicationBundle) .ErrorPlaceholder("ic_placeholder.png", ImageSource.ApplicationBundle) .IntoAsync(item.avatar); } catch (System.Exception) { } } } item.summary.Text = HtmlUtils.ReplaceHtmlTag(model.Content, 500); item.time.Text = DateTimeUtils.CommonTime(Convert.ToDateTime(model.PublishedTime)); if (model.TitleImage == "") { item.titleImage.Visibility = ViewStates.Gone; } else { item.titleImage.Visibility = ViewStates.Visible; try { await ImageService.Instance.LoadUrl(model.TitleImage) .Retry(3, 200) .DownSample(700, 200) .LoadingPlaceholder("ic_placeholder.png", ImageSource.ApplicationBundle) .ErrorPlaceholder("ic_placeholder.png", ImageSource.ApplicationBundle) .IntoAsync(item.titleImage); } catch (System.Exception) { } } break; } }
public override void OnBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) { int viewType = viewHolder.ItemViewType; switch (viewType) { case LoadingView: AddLoadMore(viewHolder); break; case FooterView: break; default: var item = (ItemViewHolder)viewHolder; var model = List[position]; item.ItemView.Tag = model.Slug; item.ItemView.SetOnClickListener(this); item.name.Text = model.Author.Name; item.title.Text = model.Title; if (model.Author.IsOrg) { item.org.Visibility = ViewStates.Visible; item.org.SetImageResource(Resource.Drawable.identity); } else { if (model.Author.Badge != null) { item.org.Visibility = ViewStates.Visible; if (model.Author.Badge.Identity != null) { item.org.SetImageResource(Resource.Drawable.identity); } else if (model.Author.Badge.Best_answerer != null) { item.org.SetImageResource(Resource.Drawable.bestanswerer); } } else { item.org.Visibility = ViewStates.Gone; } } item.summary.Text = HtmlUtils.ReplaceHtmlTag(model.Content, 500); item.likesCount.Text = model.LikesCount + " ÔÞ"; item.commentsCount.Text = " ¡¤ " + model.CommentsCount + " ÆÀÂÛ"; item.time.Text = " ¡¤ " + DateTimeUtils.CommonTime(Convert.ToDateTime(model.PublishedTime)); if (model.TitleImage == "") { item.titleImage.Visibility = ViewStates.Gone; } else { item.titleImage.Visibility = ViewStates.Visible; Picasso.With(context) .Load(model.TitleImage) .Placeholder(Resource.Drawable.ic_placeholder) .Error(Resource.Drawable.ic_placeholder) .Into(item.titleImage); } var avatar = model.Author.Avatar.Template.Replace("{id}", model.Author.Avatar.ID); avatar = avatar.Replace("{size}", "s"); Picasso.With(context) .Load(avatar) .Transform(new CircleTransform()) .Placeholder(Resource.Drawable.ic_placeholder_radius) .Error(Resource.Drawable.ic_placeholder_radius) .Into(item.avatar); break; } }
protected override void ConvertAsync(RecyclerView.ViewHolder holder, StatusModel model) { var baseHolder = holder as BaseAdapter.BaseViewHolder; var linearLayout = (baseHolder.GetView(Resource.Id.linearLayout) as LinearLayout); linearLayout.Tag = model.Id; linearLayout.SetOnClickListener(this); var txtDesc = (baseHolder.GetView(Resource.Id.txtDesc) as TextView); var txtParentCommentContent = (baseHolder.GetView(Resource.Id.txtParentCommentContent) as TextView); (baseHolder.GetView(Resource.Id.txtUserName) as TextView).Text = HtmlUtils.GetHtml(model.UserDisplayName).ToString(); (baseHolder.GetView(Resource.Id.txtPostdate) as TextView).Text = DateTimeUtils.CommonTime(Convert.ToDateTime(model.DateAdded)); var commentCount = (baseHolder.GetView(Resource.Id.txtCommentCount) as TextView); if (model.CommentCount > 0) { commentCount.Text = " " + model.CommentCount; } else { commentCount.Text = ""; } var content = (baseHolder.GetView(Resource.Id.txtContent) as TextView); (baseHolder.GetView(Resource.Id.progressBar) as ProgressBar).Visibility = ViewStates.Gone; var imgUserUrl = (baseHolder.GetView(Resource.Id.imgUserUrl) as ImageView); var imgPrivate = (baseHolder.GetView(Resource.Id.imgPrivate) as ImageView); var imgDelete = (baseHolder.GetView(Resource.Id.imgDelete) as ImageButton); imgDelete.Tag = model.Id; imgDelete.SetOnClickListener(this); if (User != null && User.UserId == model.UserGuid && model.Id > 0) { imgDelete.Visibility = ViewStates.Visible; } else { imgDelete.Visibility = ViewStates.Gone; } if (model.StatusId > 0) { commentCount.Visibility = ViewStates.Gone; txtDesc.Text = "回复了您的评论"; txtParentCommentContent.Visibility = ViewStates.Visible; txtParentCommentContent.SetText(HtmlUtils.GetHtml(model.ParentCommentContent), TextView.BufferType.Spannable); } else { commentCount.Visibility = ViewStates.Visible; txtParentCommentContent.Visibility = ViewStates.Gone; txtDesc.Text = "发布了"; imgDelete.Tag = model.Id; linearLayout.Tag = model.Id; } if (model.IsPrivate) { imgPrivate.Visibility = ViewStates.Visible; try { Picasso.With(context) .Load(Resource.Drawable.isPrivate) .Into(imgPrivate); } catch { } } else { imgPrivate.Visibility = ViewStates.Gone; } if (model.IsLucky) { var Content = "\u3000" + model.Content + " "; var spanText = new SpannableString(HtmlUtils.GetHtml(Content)); try { var imageSpan = new CenteredImageSpan(context, Resource.Drawable.luckystar); spanText.SetSpan(imageSpan, spanText.Length() - 1, spanText.Length(), SpanTypes.InclusiveExclusive); } catch (Exception ex) { MobclickAgent.ReportError(context, ex.Message); spanText.SetSpan(context, spanText.Length() - 1, spanText.Length(), SpanTypes.InclusiveExclusive); } content.SetText(spanText, TextView.BufferType.Spannable); } else { content.SetText(HtmlUtils.GetHtml(model.Content), TextView.BufferType.Spannable); } try { Picasso.With(context) .Load(model.UserIconUrl) .Placeholder(Resource.Drawable.placeholder) .Error(Resource.Drawable.placeholder) .Transform(new CircleTransform()) .Into(imgUserUrl); } catch { } }
protected override void ConvertAsync(RecyclerView.ViewHolder holder, BookmarksModel model) { var baseHolder = holder as BaseAdapter.BaseViewHolder; var linearLayout = (baseHolder.GetView(Resource.Id.linearLayout) as LinearLayout); linearLayout.Tag = model.WzLinkId.ToString(); linearLayout.SetOnClickListener(this); var txtSummary = (baseHolder.GetView(Resource.Id.txtSummary) as TextView); if (model.Summary != null && model.Summary.Length > 0) { txtSummary.Visibility = ViewStates.Visible; txtSummary.Text = model.Summary; } else { txtSummary.Visibility = ViewStates.Gone; } (baseHolder.GetView(Resource.Id.txtPostdate) as TextView).Text = DateTimeUtils.CommonTime(Convert.ToDateTime(model.DateAdded)); (baseHolder.GetView(Resource.Id.txtTitle) as TextView).Text = model.Title; (baseHolder.GetView(Resource.Id.txtLink) as TextView).Text = model.LinkUrl; (baseHolder.GetView(Resource.Id.progressBar) as ProgressBar).Visibility = ViewStates.Gone; var txtTag = (baseHolder.GetView(Resource.Id.txtTag) as TextView); if (model.Tag != null && model.Tag != "") { txtTag.Visibility = ViewStates.Visible; txtTag.Text = " " + model.Tag.Replace(',', ' '); } else { txtTag.Visibility = ViewStates.Gone; } var imgDelete = (baseHolder.GetView(Resource.Id.imgDelete) as ImageButton); imgDelete.Tag = model.WzLinkId.ToString(); imgDelete.SetOnClickListener(this); var imgEdit = (baseHolder.GetView(Resource.Id.imgEdit) as ImageButton); imgEdit.Tag = baseHolder.AdapterPosition.ToString(); imgEdit.SetOnClickListener(this); }
private void BindView() { handler.Post(() => { txtTitle.Text = question.Title; txtDateAdded.Text = DateTimeUtils.CommonTime(question.DateAdded); if (question.Award > 0) { this.txtGold.Text = question.Award.ToString(); this.txtGold.Visibility = ViewStates.Visible; } else { this.txtGold.Visibility = ViewStates.Gone; } if (question.DealFlag == 1) { this.txtDealFlag.Text = Resources.GetString(Resource.String.question_dealflag_1); this.txtDealFlag.Selected = false; } else if (question.DealFlag == -1) { this.txtDealFlag.Text = Resources.GetString(Resource.String.question_dealflag_2); this.txtDealFlag.Selected = true; } else { this.txtDealFlag.Text = Resources.GetString(Resource.String.question_dealflag_0); this.txtDealFlag.Selected = true; } if (question.Tags != null && question.Tags.Length > 0) { txtTag.Visibility = ViewStates.Visible; txtTag.Text = " " + question.Tags.Replace(',', ' '); } else { txtTag.Visibility = ViewStates.Gone; } if (question.DiggCount > 0) { txtDigg.Text = question.DiggCount.ToString(); } if (question.ViewCount > 0) { txtRead.Text = question.ViewCount.ToString(); } if (question.AnswerCount > 0) { txtComments.Text = question.AnswerCount.ToString(); } if (question.Content == null || question.Content == "") { OnRefresh(); } else { var content = HtmlUtils.ReadHtml(Assets); var body = HtmlUtils.ReplaceHtml(question.Content).Trim('"'); if (question.Addition != null) { body += " <h2>ÎÊÌâ²¹³ä£º</h2>" + question.Addition.Content; } txtBody.LoadDataWithBaseURL("file:///android_asset/", content.Replace("#title#", "").Replace("#body#", body), "text/html", "utf-8", null); } if (question.QuestionUserInfo != null && question.QuestionUserInfo.UserID > 0) { txtUserName.Text = Html.FromHtml(question.QuestionUserInfo.UserName).ToString(); txtScore.Text = HtmlUtils.GetScoreName(question.QuestionUserInfo.QScore) + " ¡¤ " + question.QuestionUserInfo.QScore + "Ô°¶¹ ¡¤ "; try { Picasso.With(this) .Load("https://pic.cnblogs.com/face/" + question.QuestionUserInfo.IconName) .Placeholder(Resource.Drawable.placeholder) .Error(Resource.Drawable.placeholder) .Transform(new CircleTransform()) .Into(imgIconName); } catch (Exception) { } } }); }