Android alertdialog change button color

Изменить цвет кнопки в AlertDialog

Как изменить цвет кнопки (ов) в AlertDialog в Android?

Вот как я это сделал.

Поскольку большинство людей, вероятно, используют DialogFragment , теперь я столкнулся с некоторыми проблемами и нажал мой путь через несколько ответов SO, чтобы решить их. Позвольте мне опубликовать мое текущее решение.

Я закончил тем, что установил кнопку-фон с пользовательскими чертежами, как уже было предложено несколько раз. Однако это еще не было возможно в onCreateDialog для DialogFragment . Вы можете либо сделать это, например, в onStart() , или (именно это я предпочитаю) в onShow -listener диалога! Имейте в виду, однако, после изменения вы должны аннулировать свои кнопки.

Что касается полей: просто удалите дополнение в вашем Drawable-XML для кнопок.

#onCreateDialog в вашем DialogFragment:

Пример Drawable-XML для кнопки:

Не забудьте res\values\colors.xml свои цвета в res\values\colors.xml , например, так (я не хотел градиента, поэтому цвета 1 и 2 одинаковы):

Я сделал по этому коду, это может помочь вам:

Я хотел решить это с помощью тем, а не дополнительного кода, так как для меня было более чистым, чтобы в стиле styles.xml были все связанные с стилями вещи. То, что я сделал, было основано на ответе Араде и на этот другой вопрос :

Это изменит цвет текста кнопки любого диалогового окна предупреждения, которое вы создаете в стиле AlertDialogDanger . Для этого:

Мы можем изменить цвет текста кнопки диалогового окна с помощью стиля.

Style.xml

Вы не можете изменить цвет или изображения или фон кнопок по умолчанию для предупреждающих ящиков. Для настройки вам нужно сделать так, чтобы вы настраивали это диалоговое окно.

Вы можете делать все, что захотите, с помощью XML-файла. Надеюсь, это поможет. благодаря

Чтобы изменить цвет кнопок AlertDailog

Цвет кнопок и другого текста также можно изменить с помощью appcompat:

Я думаю, что есть разработчик, который хочет расширить класс AlertDialog и определить цвета кнопок с определением класса. Для этой цели вы можете использовать этот код:

Если вы используете DialogFragment (android.app.DialogFragment), вы можете перезаписать метод onStart, чтобы получить дескриптор всех кнопок (положительный, отрицательный и нейтральный).

Читайте также:  The amazing spider man android костюмы

Все вышеперечисленные решения будут работать с AlertDialog или Dialog, созданным при той же активности или фрагменте, но не на DialogFragment, созданной отдельно.

Вы имеете в виду нейтральные, положительные и отрицательные кнопки? Или кнопками, которые вы включили в макет?

Если вы имеете в виду первое, то да, вы можете. Ознакомьтесь с разделом « Пользовательская кнопка» в этом руководстве . Вам в основном нужен XML-файл, который будет указывать вашей кнопке, которую можно использовать для каждого изменения состояния. Затем вы можете установить этот XML-файл в качестве фона вашей кнопки.

Источник

Как изменить цвет текста кнопки диалога по умолчанию в Android 5

В моем приложении много диалоговых окон с предупреждениями. Это макет по умолчанию, но я добавляю в диалоговое окно положительные и отрицательные кнопки. Таким образом, кнопки получают цвет текста по умолчанию в Android 5 (зеленый). Я безуспешно пытался изменить его. Есть идеи, как изменить цвет текста?

Мой настраиваемый диалог:

Эта negativeButton является диалоговой кнопкой по умолчанию и принимает зеленый цвет по умолчанию из Android 5 Lollipop.

13 ответов

Вы можете сначала попытаться создать объект AlertDialog , а затем использовать его, чтобы настроить цвет кнопки и затем показать его. (Обратите внимание, что для объекта builder вместо вызова show() мы вызываем create() для получения объекта AlertDialog :

Причина, по которой вы должны сделать это в onShow() и не можете просто получить эту кнопку после создания диалогового окна, заключается в том, что кнопка еще не была создана.

Я изменил AlertDialog.BUTTON_POSITIVE на AlertDialog.BUTTON_NEGATIVE , чтобы отразить изменение в вашем вопросе. Хотя странно, что кнопка «ОК» будет отрицательной кнопкой. Обычно это положительная кнопка.

Использование styles.xml (значение)

Очень простое решение: измените colorPrimary по своему усмотрению, и это изменит цвет текста кнопки в окне предупреждения.

Альтернатива (с использованием Java)

Для меня все было иначе, я использовал тему кнопок

И поскольку android:textColor там был белым . Я не видел текста кнопок (кнопки диалога в основном тоже кнопки). Вот и все, изменили, исправили.

Kotlin 2020: очень простой метод

После dialog.show() использования:

Вот как это сделать: Простой способ

Просто в качестве примечания:

Цвета кнопок (и всего стиля) также зависят от текущей темы, которая может сильно отличаться при использовании либо

Читайте также:  Всеядный видеоплеер для андроид приставки

Цвет кнопок и другого текста также можно изменить с помощью appcompat:

В теме / стиле вашего приложения добавьте следующие строки:

Затем добавьте следующие стили:

Использование этого метода делает ненужным установку темы в построителе AlertDialog.

Если вы хотите изменить цвет текста кнопок (положительный, отрицательный, нейтральный), просто добавьте в свой собственный стиль диалога:

Итак, ваш стиль диалога должен выглядеть так:

Есть два способа изменить цвет кнопки диалога.

Источник

Как изменить цвет текста диалоговой кнопки по умолчанию в android 5

у меня есть много диалогов оповещения в моем приложении. Это макет по умолчанию, но я добавляю положительные и отрицательные кнопки в диалоговом окне. Таким образом, кнопки получают цвет текста по умолчанию Android 5 (Зеленый). Я попытался изменить его, но безуспешно. Есть идеи, как изменить цвет текста?

мой пользовательский диалог:

что negativeButton является кнопкой диалога по умолчанию и принимает зеленый цвет по умолчанию от Android 5 Леденец.

9 ответов

вы можете попробовать создать AlertDialog объект, а затем использовать его для настройки, чтобы изменить цвет кнопки, а затем показать его. (Обратите внимание, что на builder объект вместо вызова show() мы называем create() для получения

цвет кнопок и другого текста также можно изменить с помощью темы:

вот естественный способ сделать это через стили:

Set AlertDialogTheme через этот атрибут в свой AppTheme

или через конструктор в builder new AlertDialog.Builder(context, R.style.AlertDialogTheme)

самое простое решение-это:

Если вы хотите изменить цвет текста кнопок (положительный, отрицательный, нейтральный) , просто добавьте в свой пользовательский стиль диалога:

Итак, ваш диалог должен выглядеть так:

есть два способа изменить цвет диалоговой кнопки.

Основным Способом

если вы просто хотите изменить в деятельности, напишите ниже две строки после alertDialog.show();

рекомендовано

Я рекомендую добавить темы AlertDialog на styles.xml таким образом, вам не нужно писать один и тот же код снова и снова в каждом вызове действия/диалога. Вы можете просто создать стиль и применить эту тему в диалоговом окне. Так всякий раз, когда вы хотите изменить цвет окна AlertDialog, просто измените цвет в стилях.xml и все диалоговые окна будут обновлены во всем приложении.

и применить тему в AlertDialog.Builder

цвет кнопок и другого текста также можно изменить с помощью appcompat:

Источник

Material Design — Custom Alert Dialog

Jun 19, 2019 · 2 min read

Prerequisites

Make sure your AppTheme inherited from a material theme like:

Читайте также:  Йотафон 2 обновить андроид

Then you can then customize the style of the title, body, button, or other elements by overriding the corresponding item in the alert dialog theme.

For example, customize the text color and font size of the title by creating a materialAlertDialogTitleTextStyle that inherited from MaterialAlertDialog.MaterialComponents.Title.Text :

Examples

Example 1:

Change the background color and define the style for title text, body text, positive and negative button:

To apply th e custom theme to the dialog you need to use the MaterialAlertDialogBuilder and pass the theme id to it:

If you want to let every dialog use the same theme, then override the materialAlertDialogTheme attribute it in your AppTheme :

Now the context will provide custom dialog theme instead of the default one. You can initialize the dialog builder without the theme parameter:

Example 2:

Let the title and icon center and set different colors to title pane and button bar:

Conclusion

MaterialAlertDialog provides a beautiful base style and you can easily customize the style with writing some XML.

Источник

Material Design — Custom Alert Dialog

Jun 19, 2019 · 2 min read

Prerequisites

Make sure your AppTheme inherited from a material theme like:

Then you can then customize the style of the title, body, button, or other elements by overriding the corresponding item in the alert dialog theme.

For example, customize the text color and font size of the title by creating a materialAlertDialogTitleTextStyle that inherited from MaterialAlertDialog.MaterialComponents.Title.Text :

Examples

Example 1:

Change the background color and define the style for title text, body text, positive and negative button:

To apply th e custom theme to the dialog you need to use the MaterialAlertDialogBuilder and pass the theme id to it:

If you want to let every dialog use the same theme, then override the materialAlertDialogTheme attribute it in your AppTheme :

Now the context will provide custom dialog theme instead of the default one. You can initialize the dialog builder without the theme parameter:

Example 2:

Let the title and icon center and set different colors to title pane and button bar:

Conclusion

MaterialAlertDialog provides a beautiful base style and you can easily customize the style with writing some XML.

Источник

Оцените статью