欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

实现部分可点击的TextView

程序员文章站 2022-05-12 16:12:12
...

参考链接:https://www.runoob.com/w3cnote/android-tutorial-textview.html

实现效果:

实现部分可点击的TextView

实现:

protocolTextView.setMovementMethod(LinkMovementMethod.getInstance());
protocolTextView.setText(getContent(), TextView.BufferType.SPANNABLE);

private SpannableStringBuilder getContent() {
        List<String> protocols = new ArrayList<>();
        protocols.add("银行隐私协议");
        protocols.add("银行隐私政策");
        protocols.add("积分使用规则");
        protocols.add("活动规则");
        protocols.add("保险条款");
        protocols.add("服务协议");
        protocols.add("投保须知");
        SpannableStringBuilder content = new SpannableStringBuilder();
        for (int i = 0; i < protocols.size(); i++) {
            content.append(protocols.get(i));
        }
        int start = 0;
        for (int i = 0; i < protocols.size(); i++) {
            final int index = i;
            final String name = protocols.get(i);
            content.setSpan(new ClickableSpan() {
                @Override
                public void onClick(View widget) {
                    Toast.makeText(getActivity(), name,
                            Toast.LENGTH_SHORT).show();
                }

                @Override
                public void updateDrawState(TextPaint ds) {
                    super.updateDrawState(ds);
                    ds.setColor(index == 4 ? Color.RED : Color.GRAY);
                }
            }, start, start + name.length(), 0);
            start = start + name.length();
        }
        return content;
    }

 

相关标签: Android android