Часть TextView кликабельна со ссылкой - PullRequest
2 голосов
/ 20 марта 2019

У меня есть приложение с большим количеством текста в strings.xml.Части этого текста являются гиперссылками, которые должны быть кликабельными.

Теперь, когда я вставляю этот текст в TextView из файла макета, он работает, но когда я пытаюсь вставить этот же текст в тот же TextView с телевизором.settext (getStrings ...) он не будет работать.

Вот код:

strings.xml:

<string name="some_text">
For you to see the article, you need to click <a href='http://www.google.com'>this link</a>
\n\n
after that etc...
</string>

Активность:

TextView txt = findViewById(R.id.link_tv);
txt.setMovementMethod(LinkMovementMethod.getInstance());
txt.setText(getString(R.string.some_text));

activity_main.xml:

<TextView
     android:id="@+id/link_tv"
     android:textColor="@color/privacy_policy_link_text_color"
     android:paddingLeft="@dimen/_5sdp"
     android:paddingRight="@dimen/_5sdp"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"/>

Есть мысли?

Ответы [ 2 ]

1 голос
/ 20 марта 2019

проверьте ниже точку перед тестированием

  • Убедитесь, что ваша ссылка начинается с http:// или https://
  • Поместите строку в тег CDATA (например, <string name="some_text"><![CDATA[PLACE_YOUR_HTML_STRING_HERE]]></string>)
  • Убедитесь, что вы добавили разрешение на доступ в Интернет в вашем manifest.xml файле <uses-permission android:name="android.permission.INTERNET"/>
  • , тогда динамически HTML-текст может быть установлен с помощью приведенного ниже кода в textView
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
    textView.setText(Html.fromHtml(getString(R.string.html_string), Html.FROM_HTML_MODE_COMPACT));
} else { 
    textView.setText(Html.fromHtml(getString(R.string.html_string)));
}
Linkify.addLinks(textView, Linkify.ALL);
textView.setMovementMethod(LinkMovementMethod.getInstance());
0 голосов
/ 20 марта 2019

Создайте 2 текстовых представления в файле макета, один для статического текста, а другой для динамического текста, и назначьте динамический текст с помощью textView.setText (динамический текст). Надеюсь, это поможет.

...