91 votes

Faire un lien hypertexte textview dans Android

Je veux faire un lien pour un texte textview comme Google . Y a-t-il de toute façon un lien comme celui-ci. (ie) En cliquant sur le mot Google, il devrait ouvrir le lien approprié. Toutes les idées sont les bienvenues.

152voto

user370305 Points 46287

Essayez ceci et dites-moi ce qui se passe..

Utilisation du code Java :

 TextView textView =(TextView)findViewById(R.id.textView);
textView.setClickable(true);
textView.setMovementMethod(LinkMovementMethod.getInstance());
String text = "<a href='http://www.google.com'> Google </a>";
textView.setText(Html.fromHtml(text));

À partir du niveau API >= 24, Html.fromHtml(String source) est obsolète, utilisez plutôt fromHtml(String, int) ,

 textView.setText(Html.fromHtml(text, Html.FROM_HTML_MODE_COMPACT));

Ou dans le fichier XML de mise en page, dans les attributs de votre widget TextView

 android:autoLink="web"
android:linksClickable="true"

63voto

waqaslam Points 31012

utilisez android:autoLink="web" dans le XML de votre TextView. Il devrait automatiquement convertir les URL cliquables (si elles sont trouvées dans le texte)

31voto

Shanewaj Points 126

Tous testés et fonctionnels à 100% Solution : android:autoLink="web" ci-dessous un exemple complet Exemple de mise en page XML

     <TextView
        android:id="@+id/txtLostpassword"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:autoLink="email"
        android:gravity="center"
        android:padding="20px"
        android:text="@string/lostpassword"
        android:textAppearance="?android:attr/textAppearanceSmall" />

    <TextView
        android:id="@+id/txtLostpassword"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:autoLink="web"
        android:gravity="center"
        android:padding="20px"
        android:text="@string/defaultpassword"
        android:textAppearance="?android:attr/textAppearanceSmall" />

Chaîne dans string.xml

 <string name="lostpassword">If you lost your password please contact <a href="mailto:support@cleverfinger.com.au?Subject=Lost%20Password" target="_top">support@cleverfinger.com.au</a></string>

<string name="defaultpassword">User Guide <a href="http://www.cleverfinger.com.au/user-guide/">http://www.cleverfinger.com.au/user-guide/</a></string>

7voto

Rishabh Bhardwaj Points 415

Cela peut également être fait en utilisant la propriété par défaut de Textview

 android:autoLink="email"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X