TextView中实现部分文字点击

mac2022-06-30  20

在开发过程中有时候需要实现TextView部分文字的点击效果,实现该功能可以自定义文本控件,也可以用android源生api实现

1、SpannableString是CharSequence接口的实现类,同时它也实现了Spannable接口;

  ①SpannableString通过setSpan方法可以设置TextView文本的各种样式,包括文本中插入图片(ImageSpan),前景色(ForegroundColorSpan),背景色(BackgroundColorSpan)等

  ②SpanableString也可以通过设置ClickableSpan设置某一些文字可以被点击

  ③复写ClickableSpan中的方法

ClickableSpan click = new ClickableSpan() { @Override public void onClick(View widget) { Toast.makeText(OptionalInfoActivity.this, "该功能尚未实现", Toast.LENGTH_SHORT).show(); } @Override public void updateDrawState(TextPaint ds) { ds.setUnderlineText(false); ds.clearShadowLayer(); ds.setColor(getResources().getColor(R.color.custom_blue)); ds.setStrokeMiter(3); } }; View Code

   ④   

SpannableString spannable = new SpannableString(text); ClickableSpan click = new ClickableSpan() { @Override public void onClick(View widget) { Toast.makeText(OptionalInfoActivity.this, "该功能尚未实现",Toast.LENGTH_SHORT).show(); } @Override public void updateDrawState(TextPaint ds) { ds.setUnderlineText(false); ds.clearShadowLayer(); ds.setColor(Color.RED); } }; spannable.setSpan(click,start,end,SpannableString.SPAN_INCLUSIVE_INCLUSIVE); View Code

  TextView.setText(spannable);     

  api文档中说道If an object of this type is attached to the text of a TextView with a movement method of LinkMovementMethod, the affected spans of text can be selected. If clicked, the onClick(View) method will be called. 

  故还必须给这个TextView设置 TextView.setMovementMethod(LinkMovementMethod.getInstance());

  

转载于:https://www.cnblogs.com/Professionalbutcher/p/3628009.html

相关资源:Android中TextView实现部分文字可点击跳转
最新回复(0)