Как показать строковую переменную с цветом в 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);
Вам нужно объединить шрифт, поэтому используйте + перед тегом шрифта и после тега шрифта, и все.