本文主要是介绍TextView的SpannableString,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
评论列表中的每一个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() {@Overridepublic void onClick(View view) {Toast.makeText(mContext, "linkColor", Toast.LENGTH_SHORT).show();}@Overridepublic 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);
这篇关于TextView的SpannableString的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!