Activity关键代码:
tv.setText(getClickableSpan(1));//设置点击背景色透明((TextView) tv).setHighlightColor(getResources().getColor(android.R.color.transparent));tv.setMovementMethod(LinkMovementMethod.getInstance());}private SpannableString getClickableSpan(int status) {SpannableString spanableInfo = new SpannableString(list.get(0));if(status==1){spanableInfo.setSpan(new ClickableColorSpan(), list_symbol.get(0) + 1, list_symbol.get(1), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);}else{spanableInfo.setSpan(new ClickableColorSpan2(), list_symbol.get(0) + 1, list_symbol.get(1), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);}return spanableInfo;}public class ClickableColorSpan extends ClickableSpan {@Overridepublic void onClick(@NonNull View widget) {Toast.makeText(MainActivity.this, "我要变蓝了", Toast.LENGTH_SHORT).show();tv.setText(getClickableSpan(2));}@Overridepublic void updateDrawState(TextPaint ds) {ds.setColor(getResources().getColor(R.color.c1));ds.setUnderlineText(false);}}public class ClickableColorSpan2 extends ClickableSpan {@Overridepublic void onClick(@NonNull View widget) {Toast.makeText(MainActivity.this, "我要变红了", Toast.LENGTH_SHORT).show();tv.setText(getClickableSpan(1));}@Overridepublic void updateDrawState(TextPaint ds) {ds.setColor(getResources().getColor(R.color.c3));ds.setUnderlineText(false);}}