Могу ли я ограничить количество символов TextView?
Теперь у меня есть элемент ListView элементов TextView. каждый элемент TextView отображает текст (длина текста варьируется от 12 слов до 100+). Я хочу, чтобы эти TextView отображали часть текста (допустим, 20 слов или примерно 170 символов).
Как ограничить TextView фиксированным числом символов?
Ответы
Ответ 1
Вот пример. Я ограничиваю атрибут 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"/>
Ответ 2
Если вы не заинтересованы в 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;
}
Ответ 3
Используйте код ниже в TextView
android:maxLength="65"
Enjoy...
Ответ 4
Вы можете использовать метод setEllipsize класса TextView
http://developer.android.com/reference/android/widget/TextView.html#setEllipsize (android.text.TextUtils.TruncateAt)
С константами класса TextUtil для добавления точек подвески
http://developer.android.com/reference/android/text/TextUtils.TruncateAt.html
Ответ 5
Как упоминалось в fooobar.com/questions/88588/... и fooobar.com/questions/88592/..., используя
android:minEms="2"
должно быть достаточно для достижения поставленной цели.
Ответ 6
вы можете расширить класс TextView и перезаписать функцию setText().
В этой функции вы проверяете длину текста или словосочетание.