73 votes

Est-ce que je peux limiter le nombre de caractères dans un TextView ?

Actuellement, j'ai une ListView d'éléments TextView. Chaque élément TextView affiche un texte (la longueur du texte varie de 12 mots à plus de 100). Ce que je veux, c'est que ces TextView affichent une partie du texte (disons 20 mots ou environ 170 caractères).

Comment limiter le TextView à un nombre fixe de caractères ?

2voto

miroku Points 176

Vous pouvez utiliser la méthode setEllipsize de la classe TextView http://developer.android.com/reference/android/widget/TextView.html#setEllipsize(android.text.TextUtils.TruncateAt)

Avec les constantes de la classe TextUtil pour ajouter les points de suspension http://developer.android.com/reference/android/text/TextUtils.TruncateAt.html

1voto

Blundell Points 28342

Kotlin programmable.

Supprimer le début du texte:

 val maxChars = 10000
 if (helloWorldTextView.text.length > maxChars) {
      helloWorldTextView.text = helloWorldTextView.text.takeLast(maxChars)
 }

Supprimer la fin du texte:

 val maxChars = 10000
 if (helloWorldTextView.text.length > maxChars) {
      helloWorldTextView.text = helloWorldTextView.text.take(maxChars)
 }

1voto

Deepak Kumar Points 1

Voici la bonne solution. N'oubliez pas de définir la largeur sur WRAP CONTENT. et les ems ne sont pas basés sur le nombre maximum de caractères. EMS est basé sur la largeur. Si la largeur de la valeur ems dépasse la longueur du texte, alors automatiquement (...) sera ajouté à la fin du textview.

android:ems="8"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Ceci est un texte de démo"

-1voto

computingfreak Points 3980

Comme mentionné dans https://stackoverflow.com/a/6165470/1818089 & https://stackoverflow.com/a/6239007/1818089, en utilisant

android:minEms="2"

devrait être suffisant pour atteindre l'objectif mentionné ci-dessus.

-4voto

Andreas Points 1587

Vous pouvez étendre la classe TextView et écrire de nouveau la fonction setText(). Dans cette fonction, vous vérifiez la longueur du texte ou le nombre de mots.

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