Powinieneś być w stanie to osiągnąć, używając ClickableSpan
. Zasadniczo musisz utworzyć SpannableStringBuilder
, dołączyć części tekstowe i ustawić inną ClickableSpan dla każdej klikalnej części tekstowej.
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);
Jest to tylko przykład ilustrujący, jak ustawić pojedynczy ClickableSpan. Oczywiście będzie to miało więcej sensu, aby zrobić powyżej w pętli i ustawić nową rozpiętość w każdej iteracji.
Ponieważ jednak klasa ClickableSpan jest klasą abstrakcyjną, należy ją najpierw rozszerzyć o własną konkretną implementację. Dokładniej, metoda onClick musi zostać zaimplementowana, aby obsługiwać zdarzenia kliknięcia.
Ponadto, nie zapomnij ustawić metody MovementMethod w TextView, np. LinkMovementMethod [? Jak kliknij lub dotknij tekstu TextView na różnych słów]
tv.setMovementMethod(LinkMovementMethod.getInstance());
możliwe duplikat (http://stackoverflow.com/questions/9584136/how-to-click-or-tap-on tekst-tekst-na-różnych-słowach) – ForceMagic