android - 从 TextView 中的链接中删除下划线 - Android

标签 android hyperlink textview underline

我正在使用两个 textview 来显示来自数据库的链接,我设法更改了链接颜色但我想删除下划线

email.setText(c.getString(5));
    website.setText(c.getString(6));
    Linkify.addLinks(email, Linkify.ALL);
    Linkify.addLinks(website, Linkify.ALL);

我可以通过 XML 或代码做到这一点吗?

最佳答案

您可以在代码中执行此操作,方法是查找 URLSpan 实例并将其替换为不带下划线的版本。调用 Linkify.addLinks() 后,调用粘贴在每个 TextView 上的函数 stripUnderlines():

    private void stripUnderlines(TextView textView) {
        Spannable s = new SpannableString(textView.getText());
        URLSpan[] spans = s.getSpans(0, s.length(), URLSpan.class);
        for (URLSpan span: spans) {
            int start = s.getSpanStart(span);
            int end = s.getSpanEnd(span);
            s.removeSpan(span);
            span = new URLSpanNoUnderline(span.getURL());
            s.setSpan(span, start, end, 0);
        }
        textView.setText(s);
    }

这需要自定义版本的 URLSpan,它不启用 TextPaint 的“下划线”属性:

    private class URLSpanNoUnderline extends URLSpan {
        public URLSpanNoUnderline(String url) {
            super(url);
        }
        @Override public void updateDrawState(TextPaint ds) {
            super.updateDrawState(ds);
            ds.setUnderlineText(false);
        }
    }

关于android - 从 TextView 中的链接中删除下划线 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4096851/

相关文章:

android - TextView.setTextSize 行为异常 - 如何为不同屏幕动态设置 textview 的文本大小

CSS 链接和悬停操作?

android - 如何在Android中将图标垂直对齐到第一行textview的中心

android - 从 Cordova < 4 : Current alternative for CordovaXXClients 升级

android - 从当前日期时间获取 1 个月前

javascript - 这些天什么更容易使用或更容易实现 a :hover or javascript coding for changes on links?

excel - 如果文件夹中存在文件,则 Excel 中的超链接

android - 如何让Android TextView 自动向下滚动到末尾?

java - 位置服务 [访问] 启用监听器

android - 安卓增强现实