Я пытаюсь установить 2 разных цвета текста в alertdialog, через spannable, но, к сожалению, весь текст остается белым. Строка 'сообщение'должно быть зеленым и строка 'сообщение2' нормальный белый.Установите 2 разных цвета текста в alertdialog
Если я удалить вторую строку message2 в строке ниже, все как и должно быть.
.setMessage(ssBuilder + message2)
Код для диалога:
public static AlertDialog createDarkDialog(Context context, String title, String message, String message2) {
ContextThemeWrapper ctw = new ContextThemeWrapper(context, R.style.DarkAlert);
SpannableStringBuilder ssBuilder = new SpannableStringBuilder(message);
RelativeSizeSpan largeSizeText = new RelativeSizeSpan(1.0f);
ForegroundColorSpan foregroundColorSpan = new ForegroundColorSpan(Color.GREEN);
ssBuilder.setSpan(largeSizeText, 0, message.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ssBuilder.setSpan(foregroundColorSpan, 0, message.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
AlertDialog ad = new AlertDialog.Builder(ctw)
.setTitle(title)
.setMessage(ssBuilder + message2)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// Do something
dialog.dismiss();
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
})
.setCancelable(false)
.create();
return ad;
}
Как вызвать диалог:
Utils.createDarkDialog(mContext, "Title:", "This should be green" + "\n\n", "and this should be white.").show();
Thx Davi, но я уже решил это сам, посмотрю мой собственный anser. – Simon
Да, вы когда-то писали: D Я видел, когда я перезагрузил страницу –