Как я могу установить ссылку внутри текста в Android? - PullRequest
3 голосов
/ 19 сентября 2019

Итак, я использую 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();}

Я получаю вывод, подобный этому формату.

Ссылка: // ru.wikipedia.org/

Текст: английский 5 678 000+ статей

Ссылка: //ja.wikipedia.org/

Текст: 112 1 112 000+ 記事

Ссылка: //es.wikipedia.org/

Текст: Español 1 430 000+ artículos ...... ......

Я хочуиметь вывод, подобный этому формату,

** Тексты: английский 5 678 000+ статей **, внутри этой строки я хочу присоединиться к этой ссылке ** Ссылка: //en.wikipedia.org/**как гиперссылка или каким-либо образом, чтобы я мог щелкнуть этот текст и перейти на веб-страницу непосредственно, как в MS Word.

1 Ответ

1 голос
/ 19 сентября 2019

Вы ищете для установки текстовых значений с использованием HTML. Вот документация , а вот пример кода:

    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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...