关于android:Android-小功能之-TextView-只设置某些文字可点击

35次阅读

共计 1511 个字符,预计需要花费 4 分钟才能阅读完成。

一、成果展现

<font face= 黑体 > 咱们先来看下成果:

二、代码实现

<font face= 黑体 > 正文写的曾经很具体了,其中 tvLoginPrivacyPolicy 是我须要设置对应中央有点击成果的 TextView,具体代码实现如下所示:

private void setTvLoginPrivacyPolicySpecialText() {
    // 不须要点击的文字
    tvLoginPrivacyPolicy.setText(R.string.Bylogging);
    // 设置须要点击的文字
    SpannableString clickString1 = new SpannableString(getString(R.string.PrivacyPolicy));
    // 设置须要点击文字的款式
    clickString1.setSpan(new ClickableSpan() {
        @Override
        public void onClick(View widget) {
            // 点击之后须要做的操作
            forwardPrivacyPolicy();}

        @Override
        public void updateDrawState(TextPaint ds) {super.updateDrawState(ds);
            // 设置可点击文字的色彩
            ds.setColor(getResources().getColor(R.color.clickText));
        }
        // 0-->clickString1.length() 这个长度就是须要点击的文字长度}, 0, clickString1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    // 将须要点击的文字增加到咱们的 TextView 中
    tvLoginPrivacyPolicy.append(clickString1);
    // 持续增加不须要点击的文字组装 TextView
    tvLoginPrivacyPolicy.append(new SpannableString("" + getString(R.string.And)) +" ");
    // 增加须要点击的文字
    SpannableString clickString2 = new SpannableString(getString(R.string.TermsAndConditions));
    // 设置须要点击文字的款式
    clickString2.setSpan(new ClickableSpan() {
        @Override
        public void onClick(View widget) {forwardPrivacyPolicy();
        }

        @Override
        public void updateDrawState(TextPaint ds) {super.updateDrawState(ds);
            // 设置色彩
            ds.setColor(getResources().getColor(R.color.clickText));
        }
        // 0-->clickString2.length() 这个长度就是须要点击的文字长度}, 0, clickString2.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    tvLoginPrivacyPolicy.append(clickString2);
    // 设置点击文字点击成果为通明
    tvLoginPrivacyPolicy.setHighlightColor(Color.TRANSPARENT);
    // 开始响应点击事件
    tvLoginPrivacyPolicy.setMovementMethod(LinkMovementMethod.getInstance());
}

正文完
 0