<Excerpt in index | 首页摘要>
Android TextView 富文本
<The rest of contents | 余下全文>
今天,项目做到评论模块,要在一个TextView中,让用户昵称变色,并且可响应点击事件
TextView原生就是支持的,直接看代码:
Activity onCreate代码块
1 2 3 4
| Text tv = findViewById(R.id.item_tv); tv.setText(getClickableSpan());
tv.setMovementMethod(LinkMovementMethod.getInstance());
|
富文本格式化方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| private SpannableString getClickableSpan() { View.OnClickListener l = new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "你点击了用户昵称", 0).show(); }
String parentNick = comment.getCommentParentNick(); SpannableString spannableInfo = new SpannableString("王二: 评论内容");
spannableInfo.setSpan(new Clickable(l), 0, 2,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); return spannableInfo; }
|
富文本点击类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| class Clickable extends ClickableSpan implements View.OnClickListener { private View.OnClickListener mListener;
public Clickable(View.OnClickListener l) { mListener = l; }
@Override public void onClick(View v) { mListener.onClick(v); ((TextView) v).setHighlightColor(Color.argb(0, 0, 0, 0)); }
@Override public void updateDrawState(TextPaint ds) { ds.setColor(getResources().getColor(R.color.blue)); ds.setUnderlineText(false); } }
|