J’obtiens du texte dynamic depuis un service Web et je montre la même chose dans un TextView. Parfois, TextView a une URL comme hello
. J’ai défini le texte en utilisant le code suivant.
textView.setText(Html.fromHtml(sampletext));
Et aussi définir android:autoLink="web"
dans le xml correspondant de celui qui contient le TextView
. Maintenant, le lien apparaît correctement avec la couleur bleue et souligné, mais j’ai trouvé le juste un lien mort. Rien ne se passe si nous essayons de cliquer dessus. Que dois-je faire pour rendre le lien actif?
Après avoir revisité toutes les solutions, un résumé avec quelques explications:
android:autoLink="web"
va trouver une URL et créer un lien même si Android: linksClickable n’est pas défini, les liens sont par défaut cliquables. Vous n’avez pas à conserver l’URL seule, même au milieu d’un texte, elle sera détectée et cliquable.
Pour définir un lien via le code, même principe, pas besoin de pattern ou d’android: autoLink dans la mise en page, le lien se trouve automatiquement en utilisant Linkify:
final TextView myClickableUrl = (TextView) findViewById(R.id.myClickableUrlTextView); myClickableUrl.setText("Click my web site: www.stackoverflow.com"); Linkify.addLinks(myClickableUrl, Linkify.WEB_URLS);
Cela fonctionne pour moi:
Pour sauver une fois la vraie solution est
et je l’utilise et ça marche parfait
Découvrez cette approche:
Ssortingng text = "Visit stackoverflow.com"; TextView label = new TextView(this); label.setText(text); Pattern pattern = Pattern.comstack("stackoverflow.com"); Linkify.addLinks(label, pattern, "http://");
J’ai donné une idée de ce que j’ai trouvé
TextView tv = ( TextView ) findViewById( R.id.link ); WebView wv = ( WebView ) findViewById( R.id.webView ); URLSpan[] urlSpans = tv.getUrls(); for ( URLSpan urlSpan : urlSpans ) { wv.loadUrl( urlSpan.getURL() ); }
ssortingng.xml
Hello, Android 'Google'
main.xml
Il y a 2 cas:
"click on http://www.hello.com"
il suffit ensuite de définir l’atsortingbut autoLink dans le fichier XML afin que le lien soit automatiquement détecté dans le texte:
click on hello
alors vous devez le faire par code et dire au texte html, et spécifier une méthode de mouvement de lien pour le clic:
Ssortingng text = "click on hello"; TextView textView = view.findViewById(R.id.textView); textView.setText(Html.fromHtml(text)); textView.setMovementMethod(LinkMovementMethod.getInstance());
Dans votre XML, vous devez append android:linksClickable="true"
dans TextView.