我进入这种有线情况,我的代码如下
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)
都不起作用,链接仍然是带有下划线的蓝色,有关他们为什么不工作的任何提示?谢谢!
答案 0 :(得分:8)
你可以试试这个。比如
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);
答案 1 :(得分:0)
您可以在此处使用Spannable
和URLSpan
删除代码中的超链接下划线
首先将您的锚标记文本设为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