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

Java 在动态文本的末尾添加三个点,java,android,Java,Android,我必须在文本视图中的文本末尾添加3个点。我的文本视图位于惰性列表适配器中,因此内容经常更改。文本视图中只显示两行 e、 假设文本是 abcdefghigdddddddd dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd 结果应该是 abcdefghigdddddddd ddddddddddddddddddd

我必须在文本视图中的文本末尾添加3个点。我的文本视图位于惰性列表适配器中,因此内容经常更改。文本视图中只显示两行

e、 假设文本是

abcdefghigdddddddd dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd

结果应该是

abcdefghigdddddddd dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd

我知道我应该使用。替换(“…”,”)

但是如何总是把最后一句话写下来呢

我的文本视图如下

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

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

使textView省略号,并让android为您自动截断它

<TextView ....... bla- bla -------
          .......................
          android:elipsis="true"
          android:lines="num_of_lines" />

您想在文本末尾添加3个点吗

holder.title.setText(Html.fromHtml(a.name+"..."));
删除3个字符并添加3个点

    String a = a.name;
    a.substring(0, a.length() - 3);
    holder.title.setText(Html.fromHtml(a.name+"..."));

您可以向TextView添加“Elipes”属性,还可以指定文本视图仅为一行。它可能是这样的:

<TextView
                    android:id="@+id/text_value"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:ellipsize="end"
                    android:maxLines="1" />

首先获取字符串中的文本。然后获取字符串的长度。然后可以从最后一个字符中获取第三个字符的索引。您可以轻松地将最后三个字符替换为

所有这些都可以使用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就是您想要的字符串……

如果您想用省略号替换额外的字符,您可以这样做:

String str = "abcdefghigdddddddd dddddddddddddddddddd";
String newStr = str.replaceAll("^(.{100})(.*)$","$1...");
以上内容应与前100个字符匹配,并将其放入一组,同时将其他字符放入另一组。结果将是一个新的字符串,该字符串由第一组后面的3个点组成


您可以将100的值更改为省略号前所需的任意字符数。

只需设置
TextView
属性
android:ellipsize=“end”
,即可获得结果

省略号与单行/行属性紧密绑定。你用对了吗?分享你的xml布局和相关的java代码。你能给我一个例子吗?你想显示多少行?设置<代码> Android:Max Lead =“2”<代码> >您的代码>文本视图< /代码>。它也考虑空间,因为一些文本不采用正则表达式中的“…”@ ykuha,<代码>。< /代码>表示任何字符,因此它应该匹配空白(<代码> \<代码> >)。在我的示例中,它用前100个字符和3个省略号替换超过100个字符的任何内容,因此可能是您试图更改的文本较短。是的,但listview中的所有行都不会在第三行的最后三个字符处结束。@yakusha:我不明白您的意思。