Как добавить ссылку на ссылку в текст в Android? - PullRequest
0 голосов
/ 04 июля 2019

Я очищаю некоторые веб-данные, используя 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();
}

Я хочу, чтобы тексты были кликабельными, и он должен перенаправлять ссылки из приложения.

1 Ответ

0 голосов
/ 04 июля 2019

Для ссылки на текстовую ссылку в TextView используйте 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());
...