Установка Dynamically связывается для отправки текстовых сообщений в strings.xml

Я пытаюсь сделать приложение с локализацией встроенным, но я хочу способ, которым я могу создать ссылку на сайт в рамках текста, URL, определяемый в другом месте (для простоты обслуживания).

Так, у меня есть свои ссылки в res/values/strings.xml:



...
    http://some.link.com
    http://some.link2.com

и мой локализованный текст в res/values-en-rGB/strings.xml



...
    Sample text\nMore text and link1\nMore text and link2.

Я не протестировал этот бит, но от раздела локализации developer.android.com он говорит, что этот подход к сокращению дублирования содержания должен работать, хотя я не уверен, какая папка я должен поместить итальянский язык, например. Это было бы в 'res/values-it-rIT/strings.xml'? Позволяет предполагают, что у меня есть различные другие языки также.

Я ищу способ взять локализованный 'sampleText' основы и вставить мои ссылки HTML в и заставить их работать при нажатии. Я попробовал два подхода до сих пор:

1,

Помещение некоторого форматирования в 'sampleText' (%s):

Sample text\nMore text and link1\nMore text and link2.

и затем обрабатывая текст как это:

TextView tv = (TextView) findViewById(R.id.textHolder);
tv.setText(getResources().getString(R.string.sampleText, getResources().getString(R.string.link1), getResources().getString(R.string.link2)));

Но это не работало, когда я нажимаю на ссылку, даже при том, что текст ссылки вставляется к корректным местам.

2, я пытался использовать Linkify, но маршрут регулярного выражения может быть трудным, поскольку я смотрю на поддержку находящихся в нелатыни языков. Я пытался поместить пользовательский тег XML вокруг текста ссылки и затем сделать что-то вроде этого:

Pattern wordMatcher = Pattern.compile(".*");
String viewURL =    "content://" + getResources().getString(R.string.someLink);
Linkify.addLinks(tv, wordMatcher , viewURL );

Но это не работало также.

Так, я хотел бы знать, существует ли способ динамичного добавления нескольких URL к различным разделам того же текста, который свяжется с веб-контентом?

9
задан Martyn 24 January 2012 в 16:49
поделиться

2 ответа

Попробуйте использовать Html.fromHtml () , чтобы преобразовать HTML в Spannable , который вы поместите в TextView . С тем, что у вас есть в №1, я ожидал бы, что TextView покажет исходный HTML-код, а не визуализированный HTML.

3
ответ дан 4 December 2019 в 08:00
поделиться

Вы должны реализовать

setMovementMethod(LinkMovementMethod.getInstance());

в текстовом представлении

Вот лучший пример:

clickable-urls-in-android-textviews

3
ответ дан 4 December 2019 в 08:00
поделиться
Другие вопросы по тегам:

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