先看效果
public class WebClickableSpan extends ClickableSpan {
private String color = "";
private String url = "";
private Context context;
public WebClickableSpan(Context context, String color, String url) {
this.color = color;
this.url = url;
this.context = context;
}
@Override
public void updateDrawState(TextPaint ds) {
//是否显示下划线
ds.setUnderlineText(false);
//文本的颜色
ds.setColor(Color.parseColor(color));
}
@Override
public void onClick(@NonNull View widget) {
Toast.makeText(context,url,Toast.LENGTH_LONG).show();
}
}
TextView使用方式:
private void initView() {
tv = findViewById(R.id.tv);
String s = "保护未成年人,是国家机关、武装力量、政党、社会团体、企业事业组织、城乡基层群众性自治组织、未成年人的监护人和其他成年公民的共同责任,详情可见《未成年人保护法》";
SpannableString spannableString = new SpannableString(s);
WebClickableSpan span = new WebClickableSpan(this, "#FF3333","www.baidu.com");
spannableString.setSpan(span,70, 79,Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
tv.setMovementMethod(LinkMovementMethod.getInstance());
tv.setHighlightColor(this.getResources().getColor(android.R.color.transparent));
tv.setText(spannableString);
}