5

私の Android アプリでは、さまざまなアクティビティでさまざまなカスタム テーマを使用していますが、すべて正常に動作します。これらのテーマはすべて、ボタン、編集コントロールなどに同じカスタム スタイルを使用します。

私の設定では、標準の Preference アクティビティを使用します。これは XML で定義し、マニフェストを介してスタイルを設定します。

ただし、ListPreference などのアラート ダイアログを起動する設定がある場合、ダイアログは標準のボタンを使用します。EditTextPreference でカスタム EditText スタイルを使用しているようですが、背景やテキストの色は使用していません。

なぜこれが起こっているのか誰にも分かりますか?

コードの一部:

スタイル:

<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>
4

1 に答える 1

1

alertDialog をカスタマイズするには、メイン テーマに 2 行目を追加し、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>
于 2015-08-11T09:54:19.097 に答える