给TextView控件内容每一个文字设置点击事件

String dst = "Liver and kidney are particularly rich in vitamin A.";
        SpannableStringBuilder ssInfo = new SpannableStringBuilder(dst);
        String[] split = dst.split(" ");
        for (String subContent: split){
            Pattern pattern = Pattern.compile(subContent);
            Matcher matcher = pattern.matcher(dst);
            while (matcher.find()){
                final String group = matcher.group();
                ClickableSpan cs = new ClickableSpan() {
                    @Override
                    public void onClick(View widget) {
                        Log.e("zqh","group = "+group);
                        DialogUtil.showToast(group);
                    }

                    @Override
                    public void updateDrawState(TextPaint ds) {
                    //去掉富文本可点击文字的下滑线等样式
                        ds.setUnderlineText(false);
//                        super.updateDrawState(ds);
                    }
                };
                ssInfo.setSpan(cs,matcher.start(),matcher.end(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            }
        }

        translateTextView.setText(ssInfo);//设置给textview
        //设置光标起始位置计算方式
        translateTextView.setMovementMethod(LinkMovementMethod.getInstance());

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值