21
2011
Formater une TextView avec du code HTML
Dans Android, quand on veut mettre en forme une TextView, on peut aller jusqu’à se pendre. De base, Dans une TextView, nous pouvons éditer que le style global du texte. Donc exit les couleurs ici, un lien par-là, du texte italique au milieu et j’en passe.
Pour faire tout ceci quelques choix s’offrent à nous dont la mise en forme en Html. Par contre, il faut penser à cette mise en forme avant de setter le texte de notre TextView.
Pour ceci, nous allons créer un nouveau projet Android basique.
Ensuite, allez dans votre main.xml et modifiez le comme ceci :
| XML | | copy code | | ? |
| 01 | <?xml version="1.0" encoding="utf-8"?> |
| 02 | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
| 03 | android:orientation="vertical" |
| 04 | android:layout_width="fill_parent" |
| 05 | android:layout_height="fill_parent" |
| 06 | > |
| 07 | <TextView |
| 08 | android:id="@+id/textView" |
| 09 | android:layout_width="fill_parent" |
| 10 | android:layout_height="wrap_content" |
| 11 | android:text="@string/hello" |
| 12 | /> |
| 13 | </LinearLayout> |
Nous avons juste rajouté une ID à notre TextView afin de la récupérer dans notre Activity. Ensuite, placez-vous dans votre Activity et récupérez votre TextView avec la commande suivante (à faire après le setContentView()) :
| Java | | copy code | | ? |
| 1 | TextView text = findViewById(R.id.textView); |
Bien, à partir d’ici, nous pouvons entièrement surcharger notre TextView. Nous pouvons lui remplacer le texte de base, changer sa couleur, sa taille, …
Nous allons juste changer son texte par du code Html :
| Java | | copy code | | ? |
| 1 | String html = "<p>Test de code HTML avec un <a href='http://www.throrinstudio.com'>lien</a>. <b>Et un texte en gras</b>"; |
| 2 | text.setText(html); |
Si nous lançons notre projet, nous obtenons ceci :
Ce n’est pas ce que nous attendions n’est-ce pas ? C’est normal, par défaut, la TextView retranscrit tel quel le texte qu’on lui attribue. Un peu à la manière des balises en HTML. Pour avoir notre texte mis en forme, nous devons passer par une étape intermédiaire.
Cette étape c'est juste d'indiquer que ce que l'on passe à notre TextView est du Html et qu'il devra être affiché avec la bonne mise en forme. Donc nous allons juste modifier la ligne d’attribution du texte comme ceci :
text.setText(Html.fromHtml(html));
Ici, nous faisons juste un Html.fromHtml. Cette fonction native à Android permet justement de formater le texte à partir de l’html. Ce qui nous donne ceci :
Nous avons enfin le résultat escompté sauf que, si vous essayez de cliquer sur le lien, il ne se passe rien. Android n’a fait que la mise en forme, pas l’action associée au lien. Pour ce faire, nous devons dire à notre TextView que nous souhaitons interagir avec notre lien grâce à la ligne suivante :
| Java | | copy code | | ? |
| 1 | text.setMovementMethod(LinkMovementMethod.getInstance()); |
Et maintenant relancez votre application, cliquez sur le lien et ho, magie, ça marche !!
Articles Connexes
Laisser un commentaire
Catégories
- Actualités (11)
- Android (5)
- Bases de Données (4)
- Développement (1)
- PasteQR (2)
- PHP (8)
- Systèmes et Réseau (5)
- Technologies Web (5)
- Tests (2)
- Zend Framework (30)
Commentaires récents
- (@Fritte7) (@Fritte7) dans PasteQR passe en 1.1.0
- roux dans ZendX Jquery Dialog
- Fritte7 dans Gérer des évènements dans une listview.
- Fierfeu dans Introduction à Zend Framework 2.0
- Christophe B. dans Gérer des évènements dans une listview.
Mots-Clefs
Active Directory AJAX Android Apache2 APC Bootstrap Chrome Configuration CSS Eclipse Firefox Google html HTTP Installation Internet Internet Exporer Java Javascript JQuery JQuery UI Linux Mémoire Mac MySQL Navigateur Opera PDO Pear Phing PHP Safari SGBD SMTP SQL Ubuntu View Helper Windows Server XML Zend Cache Zend DB Zend Form Zend Framework ZendX ZF 2.0
WP Cumulus Flash tag cloud by Roy Tanck requires Flash Player 9 or better.

Publié par Throrïn






