zoukankan      html  css  js  c++  java
  • 设置TextView下划线并响应点击事件(SpannableString)

    写Demo程序的时候能表带自己定义的数据结构对象吗?

    --低级程序员

    前情提要:网上介绍TextView+SpannableString的文章真心太长,真心看不懂。

    ====原文=====

    以下是一个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完毕。
    
  • 相关阅读:
    Java 之 Maven 基础
    JavaScript 之 RegExp 对象
    Java 之 Jedis
    Java 之 Redis 基础
    Java 之 NOSQL
    JavaWeb 之 JSON
    JavaWeb 之 Ajax
    【LeetCode-数组】外观数列
    【LeetCode-树】从先序遍历还原二叉树
    【LeetCode-数组】搜索二维矩阵 II
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4293259.html
Copyright © 2011-2022 走看看