gpt4 book ai didi

Android: TextView 超链接

转载 作者:IT王子 更新时间:2023-10-28 23:44:13 24 4
gpt4 key购买 nike

我知道如果你把一个链接放在一个 TextView 中它会起作用,但如果我想显示例如:

谷歌堆栈溢出

而不是整个链接(只是标签)如何使这些链接可点击?

最佳答案

您可以有两个单独的 TextView,如果需要,您可以在布局中相应地对齐它们:

    Text1.setText(
Html.fromHtml(
"<a href=\"http://www.google.com\">google</a> "));
Text1.setMovementMethod(LinkMovementMethod.getInstance());

Text2.setText(
Html.fromHtml(
"<a href=\"http://www.stackoverflow.com\">stackoverflow</a> "));
Text2.setMovementMethod(LinkMovementMethod.getInstance());

那么如果你想去掉“链接下划线”。创建一个类:

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

然后在拥有 TextViews 的主 Activity 类中添加此方法

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);
}

然后在初始化 TextViews 之后调用它(在你的 onCreate 中):

stripUnderlines(Text1);
stripUnderlines(Text2);

关于Android: TextView 超链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9852184/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com