Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-追加文本行。帮助选择正确的控件_Android - Fatal编程技术网

Android-追加文本行。帮助选择正确的控件

Android-追加文本行。帮助选择正确的控件,android,Android,各位 在我的社交网络应用程序中,单行消息来自不同的用户。当消息传入时,我需要在UI中将它们显示为一行,显示时间、用户和消息行。所有3个字段的颜色都需要不同 我尝试使用TextView,但遇到问题。由于我需要各种颜色,我曾想过使用SpannableString,但问题是TextView.Append不支持将SpannableString作为参数 我的另一个想法是在每行输入时构建html样式的文本 我想知道我是否忽略了什么。也许有更好的用户控制或更好的方法来实现我的目标 提前感谢您的帮助 问候, P

各位

在我的社交网络应用程序中,单行消息来自不同的用户。当消息传入时,我需要在UI中将它们显示为一行,显示时间、用户和消息行。所有3个字段的颜色都需要不同

我尝试使用TextView,但遇到问题。由于我需要各种颜色,我曾想过使用SpannableString,但问题是TextView.Append不支持将SpannableString作为参数

我的另一个想法是在每行输入时构建html样式的文本

我想知道我是否忽略了什么。也许有更好的用户控制或更好的方法来实现我的目标

提前感谢您的帮助

问候,

Peter

您应该使用三个不同的文本字段,使用列或相对布局将它们嵌套在表布局中。这样,无论长度如何,它们都会自动调整大小

您还可以使用
android:weight
标签来控制每个标签所占的空间

原因是,在数据结构中,通常每个字段有一个标签。按照MVC软件设计模式。

使用并借助
标签,您可以设置不同颜色的单个文本@

 String result="<font color=color_code>First Textview</font> <font color=color_code>Second Textview</font><font color=color_code>Third TextView</font>";

textview.setText(Html.fromHtml(result));
String result=“第一文本视图第二文本视图第三文本视图”;
setText(Html.fromHtml(result));
您不能使用
append()
。。。跨度似乎是一个很好的方法,但显然性能可以。