gpt4 book ai didi

java - 如何在 Android 的文本中设置链接?

转载 作者:太空狗 更新时间:2023-10-29 13:43:58 26 4
gpt4 key购买 nike

因此,我正在使用 Jsoup 进行网页抓取。我可以从网络上抓取数据,但是,问题是我要分别获取链接和文本。我希望这些链接设置在我的文本中。我正在使用 SpannableStringBuilder,所以有很多链接和很多文本。所以我不知道如何处理这个问题,因为我是 android 开发的新手。

    private void getWebsite() {
new Thread(new Runnable() {
@Override
public void run() {
final SpannableStringBuilder
builder = new SpannableStringBuilder();
try {
Document doc = Jsoup.
connect("https://www.wikipedia.org/").get();
String title = doc.title();
Elements links = doc.select("a[href]");

builder.append(title).append("\n");

for (Element link : links) {
final String url = link.attr("href");
builder.append("\n")
.append("Link: ")
.append(url, new URLSpan(url),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
.append("\n")
.append("Text: ")
.append(link.text());
}

} catch (IOException e) {
builder.append("Error : ")
.append(e.getMessage()).append("\n");
}
runOnUiThread(new Runnable() {
@Override
public void run() {
textView.setText(builder.toString());
textView.setMovementMethod
(LinkMovementMethod.getInstance());
}
});
}
}).start();}

我得到这样格式的输出。

链接://en.wikipedia.org/

文本:英文 5 678 000 多篇文章

链接://ja.wikipedia.org/

文本:日本语 1 112 000+ 记事

链接://es.wikipedia.org/

文本:Español 1 430 000+ artículos…………

我想要这样的输出,

** 文本:英语 5 678 000 多篇文章**,在那行里面,我想加入这个链接** 链接://en.wikipedia.org/**作为超链接或以某种方式,以便我可以单击此文本并像在 MS Word 中一样直接转到该网页。

最佳答案

您正在寻找使用 HTML 设置文本值的方法。 Here is the documentation这是一些示例代码:

    String str = "Do you want to search on " + "<a href=http//www.google.com>" +
"Google" + "</a>" + " or " + "<a href=http//www.yahoo.com>" +
"Yahoo" + "</a>" + "?";

if(Build.VERSION.SDK_INT >= 24) {
viewToSet.setText(Html.fromHtml(str, Html.FROM_HTML_MODE_LEGACY));
} else {
viewToSet.setText(Html.fromHtml(str));
}

在其中,您可以使用 HTML 设置值。只要您使用 HTML 属性,您还可以更新颜色、粗体、斜体等。

关于java - 如何在 Android 的文本中设置链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58015470/

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