Tengo el texto " Android es una pila de software ". En este texto, quiero establecer que se pueda hacer clic en el texto de " pila ". en el sentido de que si hace clic en eso, será redirigido a una nueva actividad (no en el navegador).
Lo intenté pero no lo consigo.
android
string
textview
clickablespan
naresh
fuente
fuente
Respuestas:
android.text.style.ClickableSpan
Puede resolver su problema.En XML:
fuente
ForegroundColorSpan fcs = new ForegroundColorSpan(Color.BLUE); ss.setSpan(fcs, 22, 27, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
ForegroundColorSpan
ensetSpan
después de que haya configurado el lapso puede hacer clic. Colocando el primer plano antes del espacio en el que se puede hacer clic, el nuevo color no se reflejará.Mi función para hacer múltiples enlaces dentro
TextView
UTILIZANDO
XML
MANIFESTACIÓN
Referencia
Solución para borrar la selección de resaltado de enlaces, siga https://stackoverflow.com/a/19445108/5381331
fuente
Puede usar ClickableSpan como se describe en esta publicación
Código de muestra:
Referencia
fuente
startIndex
andendIndex
logic.Puedes usar un código de muestra. Desea conocer detalles sobre ClickableSpan. Por favor revisa esta documentación
fuente
Hice este método auxiliar en caso de que alguien necesite una posición inicial y final desde una Cadena.
Y así es como lo usas
fuente
fuente
Aquí hay un
Kotlin
método para hacer partes de unTextView
clic:Se puede llamar varias veces para crear varios enlaces dentro de un TextView:
fuente
Versión Kotlin de la respuesta de Phan Van Linh.
Tenga en cuenta que tiene algunas modificaciones menores.
fuente
Para negrita,
fuente
Sugeriría un enfoque diferente que creo que requiere menos código y es más "amigable con la localización".
Suponiendo que su actividad de destino se llama "ActivityStack", defina en el manifiesto un filtro de intención con un esquema personalizado (por ejemplo, "myappscheme") en AndroidManifest.xml:
Defina TextView sin ninguna etiqueta especial (es importante NO usar la etiqueta "android: autoLink"; consulte: https://stackoverflow.com/a/20647011/1699702 ):
luego use un enlace con esquema personalizado y host en el texto de TextView como (en String.xml):
y "active" el enlace con setMovementMethod () (en onCreate () para actividades o onCreateView () para fragmentos):
Esto abrirá la actividad de pila con un toque en la palabra "pila".
fuente
Puede usar este método para establecer el valor en el que se puede hacer clic
Así es como se usa:
fuente
Este es mi
MovementMethod
para detectar clics de enlace / texto / imagen. Esta modificadoLinkMovementMethod
.fuente
respuesta más genérica en kotlin
fuente
Las soluciones proporcionadas son bastante decentes. Sin embargo, generalmente uso una solución más simple.
Aquí hay una función de utilidad linkify
Usar esta función es bastante simple. Aquí hay un ejemplo
fuente
Codifiqué un ejemplo para resolver su pregunta en Kotlin.
Este es el código:
Este es el XML
Así es como se ve
ingrese la descripción de la imagen aquí
fuente
Es realmente útil para la parte en la que se puede hacer clic para alguna parte del texto.
El punto es un carácter especial en la expresión regular. Si desea espaciar el punto, debe escapar del punto como
\\
. en lugar de simplemente pasar ".
" al método de texto separable. Alternativamente, también puede usar la expresión regular[.]
para separar la Cadena por un punto en Java.fuente
Para agregar un texto vinculado en una vista de texto, puede usar el ejemplo de recurso de cadena "footer_text" a continuación y también editar su método onCreate para su actividad, puede usar el siguiente ejemplo
string.xml
MainActivity.java
fuente