文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android实现朋友圈评论回复列表

2023-05-30 16:59

关注

本文实例为大家分享了Android实现朋友圈评论回复列表的具体代码,供大家参考,具体内容如下

Android实现朋友圈评论回复列表

Android实现朋友圈点赞列表

Android实现朋友圈多图显示功能

正文

还是老流程,先来看一下效果图:

Android实现朋友圈评论回复列表

然后是主要实现代码:

CommentsView

public class CommentsView extends LinearLayout { private Context mContext; private List<CommentsBean> mDatas; private onItemClickListener listener; public CommentsView(Context context) {  this(context, null); } public CommentsView(Context context, @Nullable AttributeSet attrs) {  this(context, attrs, 0); } public CommentsView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {  super(context, attrs, defStyleAttr);  setOrientation(VERTICAL);  this.mContext = context; }  public void setList(List<CommentsBean> list) {  mDatas = list; } public void setOnItemClickListener(onItemClickListener listener) {  this.listener = listener; } public void notifyDataSetChanged() {  removeAllViews();  if (mDatas == null || mDatas.size() <= 0) {   return;  }  LayoutParams layoutParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);  layoutParams.setMargins(0, 10, 0, 10);  for (int i = 0; i < mDatas.size(); i++) {   View view = getView(i);   if (view == null) {    throw new NullPointerException("listview item layout is null, please check getView()...");   }   addView(view, i, layoutParams);  } } private View getView(final int position) {  final CommentsBean item = mDatas.get(position);  UserBean replyUser = item.getReplyUser();  boolean hasReply = false; // 是否有回复  if (replyUser != null) {   hasReply = true;  }  TextView textView = new TextView(mContext);  textView.setTextSize(15);  textView.setTextColor(0xff686868);  SpannableStringBuilder builder = new SpannableStringBuilder();  UserBean comUser = item.getCommentsUser();  String name = comUser.getUserName();  if (hasReply) {   builder.append(setClickableSpan(name, item.getCommentsUser()));   builder.append(" 回复 ");   builder.append(setClickableSpan(replyUser.getUserName(), item.getReplyUser()));  } else {   builder.append(setClickableSpan(name, item.getCommentsUser()));  }  builder.append(" : ");  builder.append(setClickableSpanContent(item.getContent(), position));  textView.setText(builder);  // 设置点击背景色  textView.setHighlightColor(getResources().getColor(android.R.color.transparent));//  textView.setHighlightColor(0xff000000);  textView.setMovementMethod(new CircleMovementMethod(0xffcccccc, 0xffcccccc));  textView.setOnClickListener(new OnClickListener() {   @Override   public void onClick(View v) {    if (listener != null) {     listener.onItemClick(position, item);    }   }  });  return textView; }  public SpannableString setClickableSpanContent(final String item, final int position) {  final SpannableString string = new SpannableString(item);  ClickableSpan span = new ClickableSpan() {   @Override   public void onClick(View widget) {    // TODO: 2017/9/3 评论内容点击事件    Toast.makeText(mContext, "position: " + position + " , content: " + item, Toast.LENGTH_SHORT).show();   }   @Override   public void updateDrawState(TextPaint ds) {    super.updateDrawState(ds);    // 设置显示的内容文本颜色    ds.setColor(0xff686868);    ds.setUnderlineText(false);   }  };  string.setSpan(span, 0, string.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  return string; }  public SpannableString setClickableSpan(final String item, final UserBean bean) {  final SpannableString string = new SpannableString(item);  ClickableSpan span = new ClickableSpan() {   @Override   public void onClick(View widget) {    // TODO: 2017/9/3 评论用户名字点击事件    Toast.makeText(mContext, bean.getUserName(), Toast.LENGTH_SHORT).show();   }   @Override   public void updateDrawState(TextPaint ds) {    super.updateDrawState(ds);    // 设置显示的用户名文本颜色    ds.setColor(0xff387dcc);    ds.setUnderlineText(false);   }  };  string.setSpan(span, 0, string.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  return string; }  public interface onItemClickListener {  void onItemClick(int position, CommentsBean bean); }}

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 资料下载
  • 历年真题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯