У меня есть основной вид деятельности, где пользователи могут изменить (через настройки) цвет фона на свой любимый цвет.Моя проблема в том, что я не могу изменить цвет фона любых пользовательских диалогов.
Другие ответы в переполнении стека предполагают:
(a) , переопределяя тему по умолчанию напредпочтительный цвет.Я не думаю, что это подходящее решение в этом случае, так как я знаю, что изменение тем во время выполнения не рекомендуется.
(b) Изменение в styles.xml (не подходит в этом случаекак я не могу изменить во время выполнения)
(c) Переопределение класса AlertBuilder (но это окрашивает весь диалог предупреждений)
Это самое близкое к мнеизменение цвета приводит к удалению заголовка построителя предупреждений и установке фона для настраиваемого представления на любимый цвет (например, pink).К сожалению, из-за этого в верхней и нижней части диалогового окна появляются ужасные полосы.
Код включен после изображения, предложения о том, как изменить фон диалога, будут весьма полезны.
Код для внешнего вида по умолчанию
protected Dialog onCreateDialog(int dialogId) {
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
final View viewMessEdit = inflater.inflate(R.layout.example,(ViewGroup) findViewById(R.id.dialog_mess_edit_root));
builder.setView(viewMessEdit);
builder.setTitle("Alert builder's title");
}
Код для изменения цвета фона пользовательских диалоговых окон (и построителя оповещенийназвание удалено)
protected Dialog onCreateDialog(int dialogId) {
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
final View viewMessEdit = inflater.inflate(R.layout.example,(ViewGroup) findViewById(R.id.dialog_mess_edit_root));
builder.setView(viewMessEdit);
viewMessEdit.setBackgroundResource(R.color.pink_dark);
}