Android Clickable TextView Cómo hacer varias regiones de clics en el texto y capturar la selección de la región

Quiero hacer varias partes de texto individualmente clickable por ejemplo en el texto abajo:

Obtener el pronóstico del tiempo un día, dos días, siete días.

Quiero poder hacer clic individualmente en tres regiones diferentes del texto para obtener un día, dos días o siete días de predicción. No quiero que esto vaya a una URL de página web, pero sólo se captura el clic en la región de texto dentro de la actividad que está mostrando el TextView.

One Solution collect form web for “Android Clickable TextView Cómo hacer varias regiones de clics en el texto y capturar la selección de la región”

Debería ser capaz de lograr eso usando ClickableSpan . Básicamente es necesario crear un SpannableStringBuilder , añadir las partes de texto y establecer un ClickableSpan diferente para cada parte de texto seleccionable.

 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 sólo un ejemplo que ilustra cómo establecer un único ClickableSpan. Obviamente tendrá más sentido hacer lo anterior en un bucle y establecer un nuevo intervalo con cada iteración.

Sin embargo, dado que ClickableSpan es una clase abstracta, primero tendrás que ampliarla con tu propia implementación concreta. Más específicamente, el método onClick tendrá que implementarse para manejar eventos de clic.

Además, no se olvide de establecer un MovementMethod para el TextView, por ejemplo, LinkMovementMethod:

 tv.setMovementMethod(LinkMovementMethod.getInstance()); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.