如何在 android 中的 alertDialog.setMessage() 中显示带颜色的字符串变量

how to show a String variable with color in alertDialog.setMessage() in android

我希望我的 alertDialog 看起来像这样

我的 API 是 26,这是我目前的代码

alertDialog.setTitle("Warning");
alertDialog.setMessage(Html.fromHtml("Are you sure"+"\n"+"\n"+"<font color='#00bfff'><br><br><b>Est. Total Cost : $ 9.00 </b></font>",Build.VERSION.SDK_INT));

如您所见,我只是将 9.00 直接放入字符串中。 现在,我想将 9.00 设为一个名为 estCost 的字符串变量,该变量可以根据我的代码中的计算进行更改。

如何在 alertDialog.setMessage() 中显示 "string variable with the color" estCost?

我试过下面的代码

String estCost = calculate(10)  //calculate method will return a double in string.
alertDialog.setTitle("Warning");
alertDialog.setMessage(Html.fromHtml("Are you sure"+"\n"+"\n"+"<font color='#00bfff'><br><br><b>Est. Total Cost : $ <var> estCost </var></b></font>",Build.VERSION.SDK_INT));

但是没有用。请帮我 !谢谢。

您需要使用连接运算符“+”连接值

alertDialog.setMessage(Html.fromHtml("Are you sure"+"\n"+"\n"+"<font color='#00bfff'><br><br><b>Est. Total Cost : $ <var>"+ estCost+" </var></b></font>",Build.VERSION.SDK_INT));

使用可跨越文本

Spannable myText = new SpannableString("are u sure.....");        
myText.setSpan(new ForegroundColorSpan(Color.RED),7,10,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
alertDialog.setMessage(myText);

您需要连接字体,所以在字体标签之前和字体标签之后使用 + 即可。