Как показать строковую переменную с цветом в alertDialog.setMessage() в 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, которую можно изменить на основе вычислений в моем коде.

Как я могу отобразить "строковую переменную с цветом" estCost в alertDialog.setMessage()?

Я пробовал следующий код

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

Но это не работает. Пожалуйста, помогите мне! Благодарю.

3 ответа

Решение

Вам нужно объединить значение с помощью оператора конкатенации "+"

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

Вам нужно объединить шрифт, поэтому используйте + перед тегом шрифта и после тега шрифта, и все.

Другие вопросы по тегам