J'ai le texte " Android est une pile de logiciels ". Dans ce texte, je veux définir le texte " pile " est cliquable. en ce sens, si vous cliquez dessus, il sera redirigé vers une nouvelle activité (pas dans le navigateur).
J'ai essayé mais je ne comprends pas.
android
string
textview
clickablespan
naresh
la source
la source
Réponses:
android.text.style.ClickableSpan
peut résoudre votre problème.En XML:
la source
ForegroundColorSpan fcs = new ForegroundColorSpan(Color.BLUE); ss.setSpan(fcs, 22, 27, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
ForegroundColorSpan
àsetSpan
après que vous avez défini la durée cliquable. Placer le premier plan avant la portée cliquable, la nouvelle couleur ne sera pas reflétée.Ma fonction pour faire plusieurs liens à l'intérieur
TextView
EN UTILISANT
XML
DEMO
Référence
Solution pour effacer la sélection de surbrillance de lien, suivez https://stackoverflow.com/a/19445108/5381331
la source
Vous pouvez utiliser ClickableSpan comme décrit dans cet article
Exemple de code:
Référence
la source
startIndex
etendIndex
logique.Vous pouvez utiliser un exemple de code. Vous souhaitez en savoir plus sur ClickableSpan. Veuillez vérifier cette documentaion
la source
J'ai créé cette méthode d'aide au cas où quelqu'un aurait besoin d'une position de début et de fin à partir d'une chaîne.
Et voici comment vous l'utilisez
la source
la source
Voici une
Kotlin
méthode pour créer des parties d'unTextView
clic:Il peut être appelé plusieurs fois pour créer plusieurs liens dans un TextView:
la source
Version Kotlin de la réponse de Phan Van Linh.
Veuillez noter qu'il a quelques modifications mineures.
la source
Pour audacieux,
la source
Je suggérerais une approche différente qui, selon moi, nécessite moins de code et est plus «conviviale pour la localisation».
En supposant que votre activité de destination s'appelle "ActivityStack", définissez dans le manifeste un filtre d'intention pour elle avec un schéma personnalisé (par exemple "myappscheme") dans AndroidManifest.xml:
Définissez TextView sans balise spéciale (il est important de NE PAS utiliser la balise "android: autoLink", voir: https://stackoverflow.com/a/20647011/1699702 ):
puis utilisez un lien avec un schéma personnalisé et un hôte dans le texte de TextView as (dans String.xml):
et "activer" le lien avec setMovementMethod () (dans onCreate () pour les activités ou onCreateView () pour les fragments):
Cela ouvrira l'activité de la pile en tapant sur le mot "pile".
la source
Vous pouvez vous cette méthode pour définir la valeur cliquable
Voici comment l'utiliser:
la source
Ceci est mon
MovementMethod
pour détecter les clics sur les liens / textes / images. Il est modifiéLinkMovementMethod
.la source
réponse plus générique en kotlin
la source
Les solutions proposées sont plutôt correctes. Cependant, j'utilise généralement une solution plus simple.
Voici une fonction utilitaire linkify
L'utilisation de cette fonction est assez simple. Voici un exemple
la source
j'ai codé un exemple pour résoudre votre question dans Kotlin.
Voici le code:
Ceci est le XML
Voilà à quoi ça ressemble
entrez la description de l'image ici
la source
C'est vraiment utile pour la partie cliquable d'une partie du texte.
Le point est un caractère spécial dans l'expression régulière. Si vous voulez être extensible, le point doit s'échapper du point comme
\\
. au lieu de simplement passer ".
" à la méthode de texte extensible. Alternativement, vous pouvez également utiliser l'expression régulière[.]
pour étendre la chaîne par un point en Java.la source
Pour ajouter un texte lié dans une vue de texte, vous pouvez utiliser l'exemple de ressource de chaîne "footer_text" ci-dessous et également modifier votre méthode onCreate pour votre activité, vous pouvez utiliser l'exemple ci-dessous
string.xml
MainActivity.java
la source