我正在使用 jsoup
抓取一些网络数据,我可以以不同的方式获取链接和文本。我想使用我获取的链接为这些文本创建超链接。我是 Android 开发新手,所以我不知道如何实现它,也不知道到底要寻找什么。
下面是我尝试过的示例代码:
private void getWebsite(){
new Thread(new Runnable(){
@Override
public void run() {
final StringBuilder builder = new StringBuilder();
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){
builder.append("\n").append("Link:
").append(link.attr("href"))
.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());
}
});
}
}).start();
}
我希望文本可点击,并且它应该重定向到来自应用程序的链接。
最佳答案
要在 TextView
中链接文本链接 url,请使用 SpannableStringBuilder而不是常规的 StringBuilder
并设置 URLSpan对于每个可点击的内容:
final SpannableStringBuilder builder = new SpannableStringBuilder();
...
for (Element link : links) {
final String url = link.attr("href");
builder.
....
.append("Link: ")
.append(url, new URLSpan(url), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
.append("\n")
...
}
最后
textView.setText(builder);
textView.setMovementMethod(LinkMovementMethod.getInstance());
关于java - 如何在 Android 中向文本添加 href 链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56883311/