Debería poder lograrlo usando ClickableSpan
. Básicamente, debe crear un SpannableStringBuilder
, agregar las partes de texto y establecer un ClickableSpan diferente para cada parte de texto que se puede hacer clic.
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);
Esto es solo un ejemplo que ilustra cómo configurar un solo ClickableSpan. Obviamente, tendrá más sentido hacer lo anterior en un bucle y establecer un nuevo lapso con cada iteración.
Sin embargo, dado que ClickableSpan es una clase abstracta, primero deberá extenderla con su propia implementación concreta. Más específicamente, el método onClick deberá implementarse para manejar los eventos de clic.
Además, no olvides configurar un MovementMethod en TextView, p. Ej. LinkMovementMethod: [? Cómo hacer clic o toque en una TextView texto en diferentes palabras]
tv.setMovementMethod(LinkMovementMethod.getInstance());
posible duplicado de (http://stackoverflow.com/questions/9584136/how-to-click-or-tap-on -a-textview-text-on-different-words) – ForceMagic