TextView设置文本的问题

4

我有一个TextView,我的需求是通过代码向该TextView添加10个字符。但当字符大于10时,它们应该在TextView中显示,但只显示8个字符 + ..的charsequence。当我想要读取该TextView的文本时,我必须获得完整的charsequence而不是8个字符 + ..。例如:

tv.settext("ASDFGHJKLQ")//这是10个字符长,所以不需要规则

但是

tv.settext("ASDFGHJKLOP")//这超过了10个字符,那么它应该在textView中显示为ASDFGHJK..,但当我检索textview的值时,它应该返回ASDFGHJKLOP而不是ASDFGHJK..,那么如何做到呢?

该textView是listview的一行。

3个回答

5
尝试将以下内容添加到您的TextView(滚动或结束)中:
android:ellipsize="marquee"

You may also need:

android:scrollHorizontally="true"

如果不使用scrollHorizontally="true",文本可能会被换行而不是添加省略号...我在我的应用程序中使用这两行代码来显示列表视图。我有三个很长的行被正确地添加了省略号。


你也被踩了,尽管你的回答是正确的。很奇怪。 - Reno
是的。通常竞争性的答案会让人生气。这是一个愚蠢的游戏。如果它起作用了,你可以在上面打勾,他们无法撤销 ;) - Bill Mote

4

这种截断发生是因为它不适合在列表项中。减小字体?

或者使用省略号


我想要截断,但是当我检索值时,我必须获得原始值而不是被截断的值。 - Pankaj Kumar
你想要的是Ellipsize。它可以完美地达成你所需的功能。它会截断显示内容,但保留数值。 - Bill Mote
@Reno和@Bill Mote,非常感谢你们。它正在运行,这对我来说是完美的答案。我没有选项可以同时将两个答案标记为正确,所以我会给你们投票。 - Pankaj Kumar

1

我只看到一种解决方案。但也许还有其他的解决方案。

用于存储字符串。

如果字符串长度大于10个字母,则将TextView的文本设置为12345678..

如果您想要获取正确的文本,应该获取字符串的值而不是TextView的值。


它不适用于作为列表视图行的文本视图。 - Pankaj Kumar
使用ArrayList<String>和ArrayAdapter为您的listview设置适配器,这样您就可以为每个列表项获取正确的字符串并为每个listview项设置正确的值。 - Tima

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接