Чтобы изменить цвет фона в `AlertDialog` при использовании `MaterialAlertDialogBuilder`, вы можете использовать несколько подходов. Один из самых простых и чистых способов — это использовать стили и темы, чтобы задать нужный цвет фона для диалогов.
### Способ 1: Использование тем и стилей
1. Создайте новый стиль в файле `styles.xml`. Например:
```xml
<resources>
<style name="CustomAlertDialog" parent="Theme.MaterialComponents.Dialog.Alert">
<item name="backgroundColor">@android:color/white</item> <!-- Установите желаемый цвет фона -->
<item name="colorPrimary">@color/colorPrimary</item> <!-- Определите основной цвет -->
<item name="colorOnPrimary">@android:color/black</item> <!-- Определите цвет текста на основном фоне -->
</style>
</resources>
```
2. Теперь, когда вы создаете свой `AlertDialog`, укажите этот стиль:
```java
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(context, R.style.CustomAlertDialog);
builder.setTitle("Заголовок")
.setMessage("Сообщение")
.setPositiveButton("OK", null)
.setNegativeButton("Cancel", null)
.show();
```
### Способ 2: Изменение фона программно
Если вы хотите установить цвет фона программно, вы можете сделать это следующим образом:
```java
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(context);
AlertDialog dialog = builder.setTitle("Заголовок")
.setMessage("Сообщение")
.setPositiveButton("OK", null)
.setNegativeButton("Cancel", null)
.create();
dialog.setOnShowListener(dialogInterface -> {
// Установите цвет фона
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.WHITE)); // Установите нужный цвет
});
dialog.show();
```
### Заключение
Выбор между стилем и программной настройкой зависит от ваших предпочтений и требований приложения. Использование стилей позволяет легко управлять внешним видом и изменениями, а программный подход предоставляет больше гибкости, если вам нужно динамически изменять настройки во время выполнения.