jon*_*ney 3 html xml string android
我在下面有一个xml字符串,其中包含html标签,如Bold和超链接href.
<string name"example"><b>%1$s</b> has been added to your clipboard and is valid until <b>%2$s</b><a href="http://www.google.com">Please see our +T\'s and C\'s+ </a> </string>
Run Code Online (Sandbox Code Playgroud)
当我格式化字符串以动态添加一些值时,它会删除我定义的粗体文本和href.
代码如下:
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-yy");
Date date = new Date(text.getValidTo());
String text = String.format(getString(R.string_dialog_text), text.getCode(), simpleDateFormat.format(date), "£30");
Run Code Online (Sandbox Code Playgroud)
然后我将其应用于警报对话框
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setNeutralButton(R.string.ok, onClickListener);
builder.setTitle(title);
builder.setMessage(text);
Run Code Online (Sandbox Code Playgroud)
如果我不格式化文本并直接使用字符串资源,这工作正常
使用 Html.fromHtml
builder.setMessage(Html.fromHtml(text));
Run Code Online (Sandbox Code Playgroud)
当您应用格式时,将CharSequence转换回String,并且您需要Spannable带有html信息.
来自doc:
有时您可能希望创建一个样式化的文本资源,该资源也用作格式字符串.通常,这不起作用,因为String.format(String,Object ...)方法将从字符串中删除所有样式信息.解决这个问题的方法是使用转义实体编写HTML标记,然后在格式化之后使用fromHtml(String)恢复这些实体.
尝试<b>代替<b>和</b>到位</b>