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

Formatting multiple string into one string

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

我的普通字符串应该是这样的:

MAIN TITLE SUBTITLE: Detail 1 Detail 2 Heading 1: User Input Data Heading 2: User Input Data.

谢谢!

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

请检查上面 link 的字符串格式。

您可以使用 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);

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);