Snackbar中的多HTML格式

时间:2017-06-07 14:02:22

标签: android html resources snackbar

我试图以编程方式添加快餐栏文本的多个html前景格式。

在我的strings.xml中:

<string name="html_test">The html entries %1$s and %2$s are looking different.</string>

我如何尝试格式化它们:

  public static Spanned getString(Context p_Context, int p_iResID, int p_iColor, String... p_Items) {
    int l_iColor = ContextCompat.getColor(p_Context, p_iColor);
    String l_HexColor = Integer.toHexString(l_iColor);

    String l_Before = "&lt;font color=" + l_HexColor + ">";
    String l_After = "&lt;/font>";

    Object[] l_Items = new String[p_Items.length];
    for(int i = 0; i < p_Items.length; i++) {
      l_Items[i] = l_Before + p_Items[i] + l_After;
    }

    return Html.fromHtml(p_Context.getString(p_iResID, l_Items));
  }

我如何称呼该功能:

getString(getContext(), R.string.html_test, R.color.blue, "Test1", "Test2");

然后我创建一个快餐栏并传递html格式文本。

Snackbar l_SnackBar = Snackbar.make(p_Root, p_Text, p_iSnackBarLenght);
l_SnackBar.getView().setBackgroundColor(p_iBGColor);
return l_SnackBar;

问题是我传入getString()的两个条目没有html格式。

我不想使用![CDATA...,因为我读到格式化存在一些问题。

1 个答案:

答案 0 :(得分:0)

我没有找到使用html格式化varbinary的前景参数的解决方案。现在我正在使用适用于我的getString()。我的代码现在看起来像这样:

SpannableString