0

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

例如假设文本是

abcdefghigdddddddddddddddddddddddddddddd

结果应该是

abcdefghigdddddddddddddddddddddddddddd...

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

但如何总是写下最后三个字?

我的文本视图如下

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

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

4

6 回答 6

4

您可以在 TextView 中添加“省略号”属性,还可以指定文本视图仅为一行。它可能看起来像这样:

<TextView
                    android:id="@+id/text_value"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:ellipsize="end"
                    android:maxLines="1" />
于 2013-03-25T13:24:38.863 回答
2

只需设置您的TextView属性android:ellipsize="end",您就会得到结果。

于 2013-03-25T13:38:26.293 回答
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 是你想要的字符串....

于 2013-03-25T13:24:46.247 回答
0

制作 textView 省略号并让 android 自动为您截断它。

<TextView ....... bla- bla -------
          .......................
          android:elipsis="true"
          android:lines="num_of_lines" />
于 2013-03-25T13:22:01.457 回答
0

您想在文本末尾添加 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+"..."));
于 2013-03-25T13:22:58.807 回答
0

如果你想用省略号替换多余的字符,你可能会摆脱这样的事情:

String str = "abcdefghigdddddddd dddddddddddddddddddd";
String newStr = str.replaceAll("^(.{100})(.*)$","$1...");

以上内容应匹配前 100 个字符并将它们放入一组中,而将其他字符放入另一组中。结果将是一个新字符串,该字符串由第一组后跟 3 个点组成。

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

于 2013-03-25T13:28:06.203 回答