Установите пользовательскую тему в настройках списка Android

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

Мои предпочтения используют стандартные действия Preference, которые я определяю в XML и стиле через манифест.

Однако, когда у меня есть предпочтение, которое вызывает запуск диалогового окна предупреждения, например ListPreference, диалоговое окно использует стандартные кнопки. Кажется, он использует мой собственный стиль EditText в EditTextPreference... но не мой фон или цвет текста.

Кто-нибудь знает, почему это происходит?

Часть кода:

Стили:

<style name="Theme.Prefs" parent="@android:style/Theme.Holo.Light">
        <item name="android:windowBackground">@drawable/background</item>
    <item name="android:buttonStyle">@style/CustomButtonStyle</item>
        <item name="android:editTextStyle">@style/CustomEditTextStyle</item>
</style>


<style name="CustomButtonStyle" parent="@android:style/Widget.Holo.Button">
    <item name="android:background">@drawable/custom_button</item>
    <item name="android:textSize">@dimen/dialog_text_size_normal</item>
    <item name="android:textColor">@color/dialog_control_colour</item>
</style>


<style name="CustomEditTextStyle" parent="@android:style/Widget.Holo.EditText">
    <item name="android:background">@drawable/custom_textfield</item>
    <item name="android:textColor">@color/dialog_control_colour</item>
    <item name="android:textSize">@dimen/dialog_text_size_normal</item>
</style>

И в манифесте:

<activity
    android:name="com.breadbun.prefs.MainPreferencesActivity"
    android:theme="@style/Theme.Prefs"
    android:screenOrientation="portrait">
</activity>

person OriginalBigBri    schedule 12.05.2013    source источник


Ответы (1)


Чтобы настроить alertDialog, вам нужно добавить вторую строку в свою основную тему, а затем настроить DialogStyle так, как вы этого хотите.

<style name="AppTheme" parent="android:Theme.Material">
    <item name="android:alertDialogTheme">@style/DialogStyle</item>
</style>
<style name="DialogStyle" parent="android:Theme.Material.Dialog.Alert">
</style>
person user5214546    schedule 11.08.2015