Android: Как я могу добавить ссылки HTML в ListView?

Между прочим, структура, которую Вы даете как пример уже, существует в библиотеке базовых классов Java как java.awt.Point. Это имеет X и Y, поскольку общедоступные поля, проверяют его для себя .

, Если Вы знаете то, что Вы делаете, и другие в Вашей команде, знают об этом, тогда это должно хорошо иметь общедоступные поля. Но Вы не должны полагаться на него, потому что они могут вызвать головные боли как в ошибках, связанных с разработчиками, использующими объекты, как будто они были выделенными структурами стека (объекты Java всегда отправляются в методы как ссылки и не как копии).

15
задан Legend 8 November 2009 в 20:58
поделиться

2 ответа

Это делается с помощью атрибута autoLink TextView. Мне потребовалось некоторое время, чтобы покопаться в документации, поэтому поместите ее здесь с примером на случай, если кто-то еще ее ищет:

Предположим, вы привязываете свое представление списка к пользовательскому адаптеру. В этом случае следующий фрагмент кода входит в ваш вызов getView:

Код:

textcontent.setText(Html.fromHtml(item.get_text()));
textcontent.setAutoLinkMask(Linkify.WEB_URLS);

Просто поместите ссылку внутри текста, передаваемого в вызов setText, и все готово.

XML:

<TextView
                android:id="@+id/txtview"
                android:autoLink="web"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:text="put your link here"/>

Надеюсь, это поможет ...

23
ответ дан 1 December 2019 в 00:11
поделиться

Если у вас есть текст в формате HTML, то лучше всего сделать следующее:

TextView textcontent = (TextView) findViewById(...);
textcontent.setMovementMethod(LinkMovementMethod.getInstance());

String text = "<a href="http://www.stackoverflow.com">stackoverflow.com</a>";
textcontent.setText(Html.fromHtml(text));

Это приведет к тому, что все теги ссылок будут кликабельны в текстовом представлении. В качестве альтернативы можно использовать android:autoLink="web", как предлагает Legend, но это имеет побочный эффект: а) связывание ссылок, которые не обернуты в теги якоря, и б) потенциальное отсутствие ссылок или связывание того, что не является ссылками. Если вам нужны интеллектуальные возможности autoLink, то вам следует использовать его, но если все, что вам нужно, это связать теги, которые уже есть, то лучше использовать setMovementMethod().

Более подробную информацию см. в этом сообщении об ошибке: http://code.google.com/p/android/issues/detail?id=2219

19
ответ дан 1 December 2019 в 00:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: