SpannableString 字符串过滤,添加颜色和连接

来源:互联网 发布:全国最大数据库 编辑:程序博客网 时间:2024/05/01 00:03

1、getView()里

viewHolder.tvContent.setMovementMethod(LinkMovementMethod.getInstance());String r = "(s[h|z])?[60|30|00]\\d{5}";Pattern p = Pattern.compile(r);Matcher m = p.matcher(entity.getText());while (m.find()) {zhe = m.group();LinkLeft = m.start();LinkRight = m.end();View.OnClickListener l = new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(ctx, GeGuActivity.class);intent.putExtra("stockCode", v.getTag().toString());ctx.startActivity(intent);}};spannableString.setSpan(new Clickable(l, zhe), LinkLeft, LinkRight,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);}viewHolder.tvContent.setText(spannableString);

2、

public class Clickable extends ClickableSpan implements View.OnClickListener {private View.OnClickListener mListener;private String code;public Clickable(View.OnClickListener l, String code) {mListener = l;this.code = code;}@Overridepublic void onClick(View v) {v.setTag(code);mListener.onClick(v);}@Overridepublic void updateDrawState(TextPaint ds) {ds.setColor(ctx.getResources().getColor(R.color.redd));ds.setUnderlineText(false); // 去除超链接的下划线}}

3、参考文章

http://sinye.iteye.com/blog/2103421

http://blog.csdn.net/snowdream86/article/details/6776629

4、

Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
用来标识在 Span 范围内的文本前后输入新的字符时是否把它们也应用这个效果。分别有 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE(前后都不包括)、Spanned.SPAN_INCLUSIVE_EXCLUSIVE(前面包括,后面不包括)、Spanned.SPAN_EXCLUSIVE_INCLUSIVE(前面不包括,后面包括)、Spanned.SPAN_INCLUSIVE_INCLUSIVE(前后都包括)

5、

String s3 = "东莞佐藤兰";                    String s4 = "习近平";                    SpannableString spanString2 = new SpannableString(s3 + "回复" + s4 + " :"                            + "哦哈呦");                    ForegroundColorSpan span2 = new ForegroundColorSpan(Color.RED);                    ForegroundColorSpan span3 = new ForegroundColorSpan(Color.BLUE);                    spanString2.setSpan(span2, 0, s3.length(),                            Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);                    spanString2.setSpan(span3, s3.length() + 2,                            s3.length() + 2 + s4.length(),                            Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);



0 0
原创粉丝点击