设置TextView下划线并响应点击事件(SpannableString)

作者: android 发布时间: 2022-10-11 浏览: 1064 次 编辑

下面是一个20行的完整Demo代码:基本原理是使用一个SpannableString并设置其ClickableSpan来响应点击事件。

        TextView useInfo = (TextView) findViewById(R.id.info);
        String url_0_text = "用户协议及隐私条款";
        useInfo.setText("开始即表示您同意遵守");
 
        SpannableString spStr = new SpannableString(url_0_text);
 
        spStr.setSpan(new ClickableSpan() {
            @Override
            public void updateDrawState(TextPaint ds) {
                super.updateDrawState(ds);
                ds.setColor(Color.WHITE);       //设置文件颜色
                ds.setUnderlineText(true);      //设置下划线
            }
 
            @Override
            public void onClick(View widget) {
                Log.d("", "onTextClick........");
            }
        }, 0, url_0_text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
 
        useInfo.setHighlightColor(Color.TRANSPARENT); //设置点击后的颜色为透明,否则会一直出现高亮
        useInfo.append(spStr);
        useInfo.setMovementMethod(LinkMovementMethod.getInstance());//开始响应点击事件

demo完结