我必须在textview的文本末尾添加3个点。我的textView在一个惰性列表适配器中,所以内容经常变化。在textview中只显示两行。
e.g。假设文本是
abcdefghigdddddddd dddddddddddddddddddd
结果应该是
abcdefghigdddddddd ddddddddddddddddd ...
我知道我应该使用.replace(“...”,“”);
但是如何总是注销掉最后一个字?
我的textview如下
holder.title.setText(Html.fromHtml(a.name));
其中a.name是要设置的数据。
答案 0 :(得分:3)
您可以将“elipses”属性添加到TextView,还可以指定文本视图只是一行。它看起来像这样:
<TextView
android:id="@+id/text_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1" />
答案 1 :(得分:2)
只需设置TextView
属性android:ellipsize="end"
即可获得结果。
答案 2 :(得分:1)
首先,您获取String中的文本。然后你获取字符串的长度。然后你可以从最后一个获取第三个字符的索引。您可以轻松地用...替换最后三个字符。
所有这一切都可以使用Java中String类的方法来完成。
假设您只想显示字符串“raviranjan”中的4个字符,并且您希望通过将其替换为“...”来修剪所有其他字符。做如下: -
String str = "raviranjan";
int length = str.length();
String subString = str.substring(0, 3); // takes four characters from beginning
String str2 = subString + "..."; // Add ellipsis
现在str2是你想要的字符串......
答案 3 :(得分:0)
制作textView省略号并让android自动截断它。
<TextView ....... bla- bla -------
.......................
android:elipsis="true"
android:lines="num_of_lines" />
答案 4 :(得分:0)
你想在文字的末尾添加3个点,然后
holder.title.setText(Html.fromHtml(a.name+"..."));
删除3个char&amp;加3个点..
String a = a.name;
a.substring(0, a.length() - 3);
holder.title.setText(Html.fromHtml(a.name+"..."));
答案 5 :(得分:0)
如果你想用椭圆替换额外的字符,你可能会得到类似的东西:
String str = "abcdefghigdddddddd dddddddddddddddddddd";
String newStr = str.replaceAll("^(.{100})(.*)$","$1...");
上面应该匹配前100个字符并将它们放在一个组中,而将其他字符抛出到另一个组中。结果将是一个新的字符串,由第一组后跟3个点组成。
您可以将值100更改为省略号之前所需的任何字符数。