评论列表中的每一个item,要设置不同事件和颜色:
可将多个SpannableString添加到一个textView中,且可为单个的SpannableString设置文本、字体大小、字体颜色以及点击事件,然后再用append方法,逐个添加到textView中
//如微信评论回复
SpannableString spannableString = new SpannableString(contentText);
如果单是设置颜色:
//设置前景红色
spannableString.setSpan(
new ForegroundColorSpan(redColor),
startIndex,
endIndex,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
设置颜色及点击事件
//设置颜色及点击事件
spannableString.setSpan(
new ClickableSpan() {
@Override
public void onClick(View view) {
Toast.makeText(mContext, "linkColor", Toast.LENGTH_SHORT).show();
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setColor(linkColor); //设置文件颜色
ds.setUnderlineText(false); //设置无下划线
}
},
contentText.length() + stockWarnStr.length() ,
contentText.length() + stockWarnStr.length() + stockWarnLink.length(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
contentTv.setText(spannableString);
contentTv.setMovementMethod(LinkMovementMethod.getInstance()); //此句至关重要,否则点击无反应
contentTv.setHighlightColor(getResources().getColor(android.R.color.transparent));方法重新设置文字背景为透明色。点击后出现的颜色
追加字符串:
TextView commentTextView = new TextView(context);
commentTextView.setTextSize(14);
commentTextView.setText(fromCommentReplyUserNameSps);
commentTextView.append(" 回复 ");
commentTextView.append(tooCommentReplyUserNameSps);
commentTextView.append(" : ");
commentTextView.append(commentReplyContentSps);
commentTextView.setMovementMethod(LinkMovementMethod.getInstance());
commentTextView.setTag(mapC.get("friendsCirclCommentId").toString());
myHolder.commentLayout.addView(commentTextView);