900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Android的TextView部分文字点击切换颜色(ClickableSpan)

Android的TextView部分文字点击切换颜色(ClickableSpan)

时间:2020-06-02 20:43:56

相关推荐

Android的TextView部分文字点击切换颜色(ClickableSpan)

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);}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。