我可以限制TextView的字符数量吗?

我现在有一个TextView元素的ListView。 每个TextView元素都显示一个文本(文本长度从12个字到100个以上)。 我想要的是让这些TextViews显示文本的一部分(比如说20个字或大约170个字符)。

如何将TextView限制为固定数量的字符?

这是一个例子。 我使用maxLength属性限制大小,将其限制为具有maxLines属性的单行,然后使用ellipsize = end自动将“…”添加到已被截断的任何行的末尾。

<TextView android:id="@+id/secondLineTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:maxLength="10" android:ellipsize="end"/> 

如果你对xml解决scheme不感兴趣,也许你可以这样做:

 String s="Hello world"; Textview someTextView; someTextView.setText(getSafeSubstring(s, 5)); //the text of someTextView will be Hello 

 public String getSafeSubstring(String s, int maxLength){ if(!TextUtils.isEmpty(s)){ if(s.length() >= maxLength){ return s.substring(0, maxLength); } } return s; } 

在TextView中使用下面的代码

  android:maxLength="65" 

请享用…

https://stackoverflow.com/a/6165470/1818089&https://stackoverflow.com/a/6239007/1818089中所述; ,使用

 android:minEms="2" 

应该足以实现上述目标。

您可以扩展TextView类并覆盖setText()函数。 在这个function中,你可以检查文字长度或单词cound。