TextView中实现部分文字点击

在开发过程中有时候需要实现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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值