在动态文本android的末尾添加三个点

时间:2013-03-25 13:19:25

标签: java android

我必须在textview的文本末尾添加3个点。我的textView在一个惰性列表适配器中,所以内容经常变化。在textview中只显示两行。

e.g。假设文本是

abcdefghigdddddddd dddddddddddddddddddd

结果应该是

abcdefghigdddddddd ddddddddddddddddd ...

我知道我应该使用.replace(“...”,“”);

但是如何总是注销掉最后一个字?

我的textview如下

holder.title.setText(Html.fromHtml(a.name));

其中a.name是要设置的数据。

6 个答案:

答案 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更改为省略号之前所需的任何字符数。