【问题标题】:how to create textview link without underscore in android如何在android中创建没有下划线的textview链接
【发布时间】:2014-06-04 10:20:11
【问题描述】:

我遇到了这种有线情况,我的代码如下

LinearLayout ll = new LinearLayout(this);
TextView tv = new TextView(this);
ll.addView(tv);
tv.setText(Html.fromHtml("<a STYLE=\"text-decoration:none;\" href=\"" 
        + StringEscapeUtils.escapeJava(elem.getChildText("newsLink")) + "\">" 
                + StringEscapeUtils.escapeJava(elem.getChildText("Title")) + "</a>"));
tv.setTextColor(Color.BLACK);

但是style="text-decoration:none"tv.setTextColor(color.black)都不起作用,链接仍然是蓝色的,带有下划线,有什么提示为什么它们不起作用?谢谢!

【问题讨论】:

标签: android textcolor text-decorations


【解决方案1】:

你可以试试这个。比如

String content = "your <a href='http://some.url'>html</a> content";

以下是从超链接中删除下划线的简洁方法:

Spannable s = (Spannable) Html.fromHtml(content);
for (URLSpan u: s.getSpans(0, s.length(), URLSpan.class)) {
    s.setSpan(new UnderlineSpan() {
        public void updateDrawState(TextPaint tp) {
            tp.setUnderlineText(false);
        }
    }, s.getSpanStart(u), s.getSpanEnd(u), 0);
}
tv.setText(s);

【讨论】:

  • 谢谢,它有效!并且不必创建另一个类!顺便说一句,关于为什么 setTextColor(Color.BALCK) 不起作用的任何想法?
  • 请点击接受符号以获得 10 声望,请
  • 我解决了这个,setTextColor()不能改变链接颜色,需要使用setLinkTextColor()
【解决方案2】:

您可以在此处使用SpannableURLSpan 从代码中删除超链接下划线

首先将你的锚标签文本变成Spannable

Spannable spannedText = Spannable.Factory.getInstance().newSpannable(
            Html.fromHtml(webLinkText));

创建新类URLSpanNoUnderline 并用URLSpan 扩展它并覆盖updateDrawState 方法。在该方法中,您可以将setUnderlineText 设置为false

然后使用此方法可以删除您的链接

public static Spannable removeUnderlines(Spannable p_Text) {  
       URLSpan[] spans = p_Text.getSpans(0, p_Text.length(), URLSpan.class);  
       for (URLSpan span : spans) {  
            int start = p_Text.getSpanStart(span);  
            int end = p_Text.getSpanEnd(span);  
            p_Text.removeSpan(span);  
            span = new URLSpanNoUnderline(span.getURL());  
            p_Text.setSpan(span, start, end, 0);  
       }  
       return p_Text;  
  }  

欲了解更多信息,您可以访问link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-29
    • 1970-01-01
    • 2017-03-12
    • 2016-09-30
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多