wake-up-neo.net

Legen Sie das Android Theme.Light für den Alert-Dialog fest

Ich versuche das Android Theme.Light Theme für meinen Alarmdialog zu setzen, aber bisher ohne Erfolg. Nachdem ich einige Tutorials gelesen hatte, stellte ich fest, dass mit AlertDialog.Builder das Design nicht direkt im Konstruktor festgelegt werden kann (zumindest in API Level 7).

Die alternative Lösung, die ich gefunden habe, ist die Verwendung eines ContextThemeWrapper , von der jeder mein Problem lösen würde. Also habe ich so etwas codiert:

AlertDialog.Builder builder = new AlertDialog.Builder(
                    new ContextThemeWrapper(context, R.style.popup_theme));

Ich habe mein Thema im Werteordner beschrieben:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="back_color">#ffffffff</color>
<style name="popup_theme" parent="@Android:style/Theme.Light">
    <item name="Android:windowBackground">@color/back_color</item>
    <item name="Android:colorBackground">@color/back_color</item>
</style>

Leider bekomme ich immer noch das Standardthema Theme.Dialog.Alert . Kann mir jemand sagen warum? Wohin gehe ich falsch?

EDIT: Wenn Sie die Antwort auf meine Frage nicht kennen, stimmen Sie bitte ab. Ich habe eine schlechte Angewohnheit, Fragen zu posten, die stecken bleiben :(

27

parent="Android:Theme.Light" in parent="@Android:style/Theme.Light" ändern

6
Gallal

Ich habe auch eine Weile gebraucht, um das herauszufinden.

Es geht darum, dass Theme.Light und Theme.Holo.Light und dergleichen auf die Aktivität zugeschnitten sind. Ein Dialogdesign muss auf einem Design basieren, z. B. @Android: style/Theme.Dialog, das für Dialoge spezifische Eigenschaften enthält.

<style name="popup_theme" parent="@Android:style/Theme.Dialog">

Versuchen Sie, den Theme.Dialog mit folgenden Elementen zu überschreiben:

<item name="Android:textAppearance">?android:attr/textAppearanceInverse</item>
3
tomwardiii

Versuche dies:

<style name="popup_theme" parent="Theme.AppCompat.Light.Dialog.Alert">
1
Ashwin
parent="Android:style/Theme.Light"
1
Chandu

Das habe ich getan. Und es hat für mich funktioniert 

AlertDialog.Builder builder = new AlertDialog.Builder(context,R.style.Theme_AppCompat_Light_Dialog);
0
Rupam Das