将多个字符串格式化为一个字符串

时间:2016-10-26 13:08:03

标签: android string string-formatting

所以我的要求如下: 我存储在不同字符串变量中的多个字符串,其中很多是硬核字符串,其中一些是用户输入,而一些是来自数据库的值(在线和离线数据库)。 我想在单个String变量中组合所有字符串,但我希望每个字母的格式不同,如下图所示。

Formatted String should look something like this

我的普通字符串就像这样:

  

MAIT TITLE SUBTITLE:详情1详情2标题1:用户输入数据标题2:用户输入数据。

谢谢!

3 个答案:

答案 0 :(得分:2)

Spannable String是您的解决方案。

请参阅此https://developer.android.com/reference/android/text/SpannableString.html

也请参考 http://androidcocktail.blogspot.in/2014/03/android-spannablestring-example.html

以下是一个例子:

final SpannableString text = new SpannableString("Hello World");
text.setSpan(new RelativeSizeSpan(1.5f), text.length() - "World".length(),text.length(),
        Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
text.setSpan(new ForegroundColorSpan(Color.BLACK), 4, text.length() - 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(text);

答案 1 :(得分:0)

  

https://developer.android.com/reference/java/util/Formatter.html

请检查上面的链接以获取字符串格式。

答案 2 :(得分:0)

您可以使用Html.fromHtml()并使用 HTML 格式化字符串;

String my_string = "<h1>MAIN TITLE</h1><br /><h2>SUBTITLE</h2><br />"
                   +"Detail 1 <br /> Detail 2 <br /><br/>"
                   +"<h4>Heading 1:</h4> User input data <br/>"
                   +"<h4>Heading 2:</h4> User input data"

然后

TextView myTextView = (TextView) findViewById(R.id.the_id_of_your_tv);
myTextView.setText(Html.fromHtml(my_string);