Android:文本视图中的多个静态样式

Android:文本视图中的多个静态样式,android,android-layout,textview,Android,Android Layout,Textview,我想在textView中放置大文本。文本有多个部分,有多种颜色。我看过Html.fromHtml()函数,也知道如何使用setSpan()。但这些都不适合我。在我的例子中,我不知道运行时文本视图的id。当我在运行时膨胀不同的视图时,每个视图都有许多文本视图。如果我能找到一种在字符串中设置样式的方法会更好 请有人帮助我,我在这里花了很多时间。你可以设置文本视图的id,不管视图是否被充气机找到 当您使用充气器获得文本视图时,您可以设置该特定文本视图的id 您可以设置textSize()和其他属性您可

我想在textView中放置大文本。文本有多个部分,有多种颜色。我看过Html.fromHtml()函数,也知道如何使用setSpan()。但这些都不适合我。在我的例子中,我不知道运行时文本视图的id。当我在运行时膨胀不同的视图时,每个视图都有许多文本视图。如果我能找到一种在字符串中设置样式的方法会更好


请有人帮助我,我在这里花了很多时间。

你可以设置文本视图的id,不管视图是否被充气机找到

当您使用充气器获得文本视图时,您可以设置该特定文本视图的id
您可以设置textSize()和其他属性

您可以设置文本视图的id,无论充气机是否找到该视图

当您使用充气器获得文本视图时,您可以设置该特定文本视图的id 您可以设置textSize()和其他属性

直接使用所需的属性创建可扩展项

基本上,您可以像这样设置颜色,给定一个名为
text
TextView

String greeting = "Hello World!"
SpannableString str = SpannableString.valueOf(greeting);
str.setSpan(new ForegroundColorSpan(0xffffffff), 0, greeting.length(),
    Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
str.setSpan(new BackgroundColorSpan(0xff0099ff), 0, greeting.length(),
    Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
text.append(str);
直接使用您需要的属性创建可扩展项将起作用

基本上,您可以像这样设置颜色,给定一个名为
text
TextView

String greeting = "Hello World!"
SpannableString str = SpannableString.valueOf(greeting);
str.setSpan(new ForegroundColorSpan(0xffffffff), 0, greeting.length(),
    Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
str.setSpan(new BackgroundColorSpan(0xff0099ff), 0, greeting.length(),
    Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
text.append(str);

你能更清楚地解释一下你到底想做什么吗?@Fosco我在一个表视图中有一些选项列表,单击任何一个列表项,我想显示一些文本内容。内容是原始文本。不同的内容没有相似之处,所以我无法创建一个通用的布局。我为列表创建了一个活动,并为显示内容创建了一个子活动。在同一子活动中,我想显示任何内容。为此,我根据用户选择对不同的布局进行了放大。你能更清楚地解释一下你到底想做什么吗?@Fosco我在表格视图中有一些选项列表,单击任何列表项我都想显示一些文本内容。内容是原始文本。不同的内容没有相似之处,所以我无法创建一个通用的布局。我为列表创建了一个活动,并为显示内容创建了一个子活动。在同一子活动中,我想显示任何内容。为此,我根据用户的选择对不同的布局进行膨胀。这看起来不错,但这里的问题是,在我的例子中,我膨胀了textView所在的父布局(而不是textView)。(所有文本视图都从字符串中获取数据)。是否有任何方法可以在字符串文件中提供html标记,而不必为文本视图调用fromHtml()。是的,您可以在字符串文件中使用html。如果您使用eclipse编辑器,您的html将自动转义。@Matthew Willis iPrepare iPlan\n工具包中最强大的工具,我正在使用粗体,但文本颜色不起作用您是否能够复制此行为:@Matthew Willis:我无法调用setText,因为在运行时我无法决定要使用哪个textView充气。我想要一种方式,使我在字符串中进行的格式化不需要从.Html调用。所有的格式化都应该在编译时完成,即不是在Java中。这看起来不错,但这里的问题是,在我的例子中,我正在膨胀textView所在的父布局(不是textView)。(所有文本视图都从字符串中获取数据)。是否有任何方法可以在字符串文件中提供html标记,而不必为文本视图调用fromHtml()。是的,您可以在字符串文件中使用html。如果您使用eclipse编辑器,您的html将自动转义。@Matthew Willis iPrepare iPlan\n工具包中最强大的工具,我正在使用粗体,但文本颜色不起作用您是否能够复制此行为:@Matthew Willis:我无法调用setText,因为在运行时我无法决定要使用哪个textView充气。我想要一种方式,使我在字符串中进行的格式化不需要从.Html调用。所有的格式化都应该在编译时完成,即不是在Java中。我正在膨胀textView所在的父布局(不是textView)。(所有文本视图都从字符串中获取数据)。您可以对子视图进行充气,例如,如果视图v=inflater.inflat(R.layout.test,null),则您可以在该wany textview tv=(textview)v.findviewbyd(R.id.tvName)中从中获取文本视图;因此,您可以像tv.setId(id)一样设置textview的id;我正在膨胀textView所在的父布局(不是textView)。(所有文本视图都从字符串中获取数据)。您可以对子视图进行充气,例如,如果视图v=inflater.inflat(R.layout.test,null),则您可以在该wany textview tv=(textview)v.findviewbyd(R.id.tvName)中从中获取文本视图;因此,您可以像tv.setId(id)一样设置textview的id;