Android textView не открывается ссылка
Имеется элемент
<TextView
android:id="@+id/top_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/self_top_title"
android:layout_margin="16dp"
android:textAlignment="textStart"
android:autoLink="web"
android:linksClickable="true"/>
Я добавил текст в String Pool
<string name="self_top_title">Сделайте 3 шага, чтобы выводить заработанные средства на баланс на банковскую карту!\n\n1. Зарегистрируйтесь в качестве \'Самозанятого\' на <a href="https://lknpd.nalog.ru">сайте</a> или в <a href="https://npd.nalog.ru">приложении \'Мой налог\'</a>; \n2. Заполните ниже: <b>свой ИНН, БИК банка и расчетный счет</b> для получения оплаты; \n3. Скачайте договор и загрузите заполненный договор. \nЭти пункты требуется выполнить только <b>один раз</b>.</string>
Ссылки стали отображаться в тексте, но при клике на них ничего не происходит.
Я вроде и autoLink указал у TextView
Ответы (1 шт):
Автор решения: danilshik
→ Ссылка
Удалил все гиперссылки из R.string
И по индексу добавил. Можно конечно получить индекс по поиску слова в фразе, но я прям захардкордил.
val tv = view.findViewById(R.id.top_title) as TextView
val span: Spannable = Spannable.Factory.getInstance().newSpannable(tv.text)
span.setSpan(object : ClickableSpan() {
override fun onClick(p0: View) {
val url = "https://lknpd.nalog.ru/"
val i = Intent(Intent.ACTION_VIEW)
i.data = Uri.parse(url)
startActivity(i)
}
}, 136, 141, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
span.setSpan(object : ClickableSpan() {
override fun onClick(p0: View) {
val url = "https://npd.nalog.ru/app/"
val i = Intent(Intent.ACTION_VIEW)
i.data = Uri.parse(url)
startActivity(i)
}
},148, 173, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
tv.text = span
tv.movementMethod = LinkMovementMethod.getInstance()