Стилизация кнопок alertDialogBuilder - PullRequest
0 голосов
/ 31 декабря 2018

Я хочу добавить собственный стиль к отрицательным и положительным кнопкам, которые я использую в alertDialogBuilder.Как это может быть сделано?Можно ли каким-то образом создавать стили с помощью XML и использовать его во всех alertDialogBuilder кнопках?В моем случае я хочу, чтобы все тексты на кнопках alertdialog были подчеркнуты точками.

Я попытался выяснить, как установить цвета для кнопок, но этого недостаточно.

...
alertDialog.show(); alertDialog.getButton(alertDialog.BUTTON_POSITIVE).setTextColor(Color.parseColor("#FFFFFF"));

Ожидаемые результаты будут в состоянии определить стиль, который может быть легко использован во всех alertDialogBuilder кнопках.

Ответы [ 2 ]

0 голосов
/ 01 января 2019

Да, вы можете создать стиль в вашем файле styles.xml и вызывать этот стиль / тему так, как вам хочется.Вы можете попробовать с кодом ниже

<style name="MyCustomThemeForAlertDialog" parent="@android:style/Theme.Holo.Dialog.NoActionBar">
    <item name="colorAccent">#ffffff</item>
    <item name="android:textSize">14sp</item>

    <!-- U can call another style as your desired style-->
    <item name="android:textAppearance">@style/MyMsgBodyTextAppearance</item>
</style>
<style name="MyMsgBodyTextAppearance" parent="@android:style/TextAppearance.Holo.Medium">
    <item name="android:textStyle">italic</item>
    <item name="android:left">-5dp</item>
    <item name="android:right">-5dp</item>
    <item name="android:top">-5dp</item>
    <item name="android:dashWidth">2dp</item>
    <item name="android:dashGap">3dp</item>
    <item name="android:width">1dp</item>
</style>

Затем назовите вашу созданную тему в коде, как показано ниже

AlertDialog.Builder builder = new AlertDialog.Builder(this,R.style.MyCustomThemeForAlertDialog);
builder.setCancelable(false);
builder.setTitle("Title");
builder.setMessage("Do you want to Quit?");
builder.setPositiveButton("OK", null);
builder.setNegativeButton("Cancel", null);

AlertDialog dialog = builder.create();
dialog.show();
0 голосов
/ 31 декабря 2018

Вы можете следовать этому руководству, чтобы применить стиль в вашем алерте. Как настроить AlertDialogs как профессионал

...