Android String Html Resource With Format

今天有一個需求,

有一個 String Resource 裡面有 Arguments ,

想要在包 Html ,

結果發現直接使用String.format(string, arg1,arg2...);

是沒有效果的,

在 Stackoverflow 搜尋一下以後終於找到解答,

必須在arg外在包一層TextUtils.htmlEncode

也就是下列的程式碼

1
2
3
4
5
6
7
8
9
10
11

String arg1 = something;
String arg2 = something;

String mContent =
String.format(resourceString,
TextUtils.htmlEncode(arg1),
TextUtils.htmlEncode(arg2));

Textview mTextview = findViewById(R.id.someview);
mTextview.setText(Html.fromHtml(mContent));

這樣就可以順利顯示囉!

順帶一提, Android 在解析 Html 的時候,

會忽略 font 標籤的 size 設定,

所以不要傻傻的用 font 設定字體大小哦!