2012-02-05 53 views
52

我現在擁有的是一個TextView元素的ListView。每個TextView元素都顯示一個文本(文本長度從12個字改爲100+)。我想要的是讓這些TextView顯示文本的一部分(比如說20個字或大約170個字符)。我可以限制TextView的字符數嗎?

如何將TextView限制爲固定數量的字符?

回答

120

下面是一個例子。我使用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"/> 
+3

什麼是'ellipsize = marquee'? – iTurki 2012-02-05 14:22:24

+1

「,然後使用ellipsize = marquee將」...「自動添加到任何行的末尾」 – Booger 2012-02-05 14:27:06

+0

聽起來很有希望。我會試一試。 – iTurki 2012-02-05 14:31:12

-5

您可以擴展TextView類並覆蓋setText()函數。 在這個功能中,你可以檢查文本長度或單詞cound。

+0

比計算文本長度或單詞更好的方法更好的方法是使用「maxLines」屬性和「ellipsize」屬性來獲得所需的效果。 – kapilgm 2015-11-23 09:13:17

3

使用下面的代碼中的TextView

android:maxLength="65" 

享受...

4

如果你的XML解決方案不感興趣,也許你可以這樣做:

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; 
} 
相關問題