2012-02-05 33 views
52

Những gì tôi có bây giờ là một ListView của các yếu tố TextView. mỗi phần tử TextView hiển thị văn bản (độ dài văn bản thay đổi từ 12 từ đến 100+). Những gì tôi muốn là làm cho các TextView này hiển thị một phần của văn bản (giả sử 20 từ hoặc khoảng 170 ký tự).Tôi có thể giới hạn số ký tự của TextView không?

Làm cách nào để giới hạn TextView thành số ký tự cố định?

Trả lời

120

Đây là một ví dụ. Tôi giới hạn thuộc tính maxLength, giới hạn nó thành một dòng duy nhất với thuộc tính maxLines, sau đó sử dụng ellipsize = end để tự động thêm "..." vào cuối dòng bất kỳ đã bị cắt.

<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' là gì? – iTurki

+1

"sau đó sử dụng dấu ba chấm = marquee để thêm" ... "tự động vào cuối dòng bất kỳ" – Booger

+0

Âm thanh đầy hứa hẹn. Tôi sẽ thử. – iTurki

-5

bạn có thể mở rộng lớp TextView và ghi đè hàm setText(). Trong chức năng này, bạn kiểm tra độ dài văn bản hoặc từ từ.

+0

Tốt hơn việc đếm chiều dài văn bản hoặc từ từ một cách tốt hơn là sử dụng thuộc tính "maxLines" cùng với thuộc tính "ellipsize" để đạt được hiệu quả mong muốn. – kapilgm

3

Sử dụng dưới mã trong TextView

android:maxLength="65" 

Thưởng thức ...

.210
4

Nếu bạn không quan tâm đến các giải pháp xml có thể bạn có thể làm điều này:

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; 
} 
Các vấn đề liên quan