Ответ 1
Вы должны это сделать, используя ClickableSpan
. В основном вам нужно создать SpannableStringBuilder
, добавить текстовые части и установить другой ClickableSpan для каждой интерактивной текстовой части.
SpannableStringBuilder sb = new SpannableStringBuilder();
String regularText = "This text is ";
String clickableText = "clickable";
sb.append(regularText);
sb.append(clickableText);
sb.setSpan(new ClickableSpan(), sb.length()-clickableText.length(), sb.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
TextView tv = ...
tv.setText(sb);
Это всего лишь пример, иллюстрирующий, как установить один ClickableSpan. Очевидно, что будет иметь смысл делать выше в цикле и устанавливать каждую точку с каждой итерацией.
Однако, поскольку ClickableSpan является абстрактным классом, сначала вам нужно расширить его с помощью своей конкретной реализации. Более конкретно, метод onClick должен быть реализован для обработки событий щелчка.
Кроме того, не забудьте установить MovementMethod в TextView, например. LinkMovementMethod:
tv.setMovementMethod(LinkMovementMethod.getInstance());