2010-05-02 8 views
8

ich eine Vorliebe Bildschirm für meine Anwendung haben und im Manifest habe ich es ein Thema gegeben mit:Nested Präferenz Bildschirme verlieren Thematisierung

android:theme="@android:style/Theme.Light.WallpaperSettings" 

Jedoch, wenn ich Nest eine andere Präferenz Bildschirm innerhalb dieses wie:

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" 
    android:title="@string/setting_title" 
    android:key="..."> 

    <PreferenceCategory 
    android:title="@string/title_themes" 
    > 

    <PreferenceScreen 
    android:title="@string/title_themes_opt" 
    > 

     <ListPreference 
    android:key="Setting_BG" 
    android:title="@string/setting_bg" 
    android:summary="@string/setting_bg_summary" 
    android:entries="@array/bg_titles" 
    android:defaultValue="0" 
    android:entryValues="@array/bg_values" /> 
    </PreferenceScreen> 

    </PreferenceCategory> 

</PreferenceScreen> 

Der geschachtelte Einstellungsbildschirm verliert das Thema des übergeordneten Elements. Wie kann dies verhindert werden? Danke im Voraus.

Antwort

2

Gerade lief auf dieses Problem.

Während der Vorschlag in dem Fehlerbericht ist, Ihren eigenen benutzerdefinierten Stil zu erstellen und den Listenansichtshintergrund festzulegen, fanden wir es einfacher, eine separate Aktivität für jeden Einstellungsbildschirm zu erstellen. Dies erlaubte uns, die Theme.Light auf jedem Bildschirm ohne Problem einzustellen.

Keine gute Lösung, aber es funktioniert.

+0

Wie gehe ich beim Laden in einer separaten Aktivität für jeden Einstellungsbildschirm vor? Kannst du mich auf ein Beispiel hinweisen? – CodingWithoutComments

+0

Ich vermute, ich muss addPreferenceFromIntent() verwenden, um herauszufinden, wie man das jetzt macht. – CodingWithoutComments