2013-01-15 13 views
6

MinSDKVersion = 7 TargetSDKVersion = 17Android: Wie verwendet man verschiedene Themen für verschiedene Android-Versionen?

Wenn der Benutzer SDKVersion 11 oder höher wie ich das Thema Theme.Holo.Light einzustellen. Es funktioniert nicht für mich hier. Wenn ich die Anwendung auf einem 3.1-Gerät starten, verwendet es nur die Theme.Light:

enter image description here

Gleiche, wenn ich laufe diese App auf einem Gerät mit niedrigerer Version als 3,1

Mein Folderstructure:

enter image description here

Manifest:

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/MyTheme" > 

Werte-v11:

<resources> 

<!-- 
    Base application theme, dependent on API level. This theme is replaced 
    by AppBaseTheme from res/values-vXX/styles.xml on newer devices. 
--> 
<style name="AppBaseTheme" parent="@android:style/Theme.Light"> 
    <!-- 
     Theme customizations available in newer API levels can go in 
     res/values-vXX/styles.xml, while customizations related to 
     backward-compatibility can go here. 
    --> 
</style> 

<!-- Application theme. --> 
<style name="AppTheme" parent="@android:style/Theme.Light"> 
    <!-- All customizations that are NOT specific to a particular API-level can go here. --> 
</style> 


<style name="MyTheme" parent="@android:style/Theme.Holo.Light"> 
    <!-- Any customizations for your app running on devices with Theme.Holo here --> 
</style> 

andere Werte Ordner:

<resources> 

<!-- 
    Base application theme, dependent on API level. This theme is replaced 
    by AppBaseTheme from res/values-vXX/styles.xml on newer devices. 
--> 
<style name="AppBaseTheme" parent="@android:style/Theme.Light"> 
    <!-- 
     Theme customizations available in newer API levels can go in 
     res/values-vXX/styles.xml, while customizations related to 
     backward-compatibility can go here. 
    --> 
</style> 

<!-- Application theme. --> 
<style name="AppTheme" parent="@android:style/Theme.Light"> 
    <!-- All customizations that are NOT specific to a particular API-level can go here. --> 
</style> 

    <style name="MyTheme" parent="@android:style/Theme.Light"> 
    <!-- Any customizations for your app running on devices with Theme.Holo here --> 
</style> 

Wie kann ich das richtig benutzen?

Mit freundlichen Grüßen Marco Seiz

Antwort

6

Warum haben Sie Ihr Thema zweimal in Ihrer styles.xml-Datei?

<style name="AppTheme" parent="@android:style/Theme.Light"> 
    <!-- All customizations that are NOT specific to a particular API-level can go here. --> 
</style> 


<style name="MyTheme" parent="@android:style/Theme.Holo.Light"> 
    <!-- Any customizations for your app running on devices with Theme.Holo here --> 
</style> 

löschen Sie die (das Theme.Light Thema in diesem Fall) nicht brauchen:

Werte-v11:

<style name="MyTheme" parent="@android:style/Theme.Holo.Light"> 
    <!-- Any customizations for your app running on devices with Theme.Holo here --> 
</style> 

Werte:

<style name="MyTheme" parent="@android:style/Theme.Light"> 
    <!-- Any customizations for your app running on devices with Theme.Holo here --> 
</style> 

+0

ich das getan habe, aber es zeigte noch das alte Thema und nicht das Holo Thema auf meinem android 4.1 und 3.1-Gerät –

+0

Haben Sie die Vervielfältigungen löschen? – Ahmad

+0

Ja, habe ich getan. Ich habe den Fehler herausgefunden. Ich musste zwei Ordner für eine Sprache erstellen. Für Deutsch: Werte-de UND Werte-de-V11 und gleich für Englisch ... Es funktioniert jetzt :) Danke für Ihre Hilfe und Tipps! –

2

Legen Sie die Lösung von @Ahmad in neue Dateien zur Verfügung gestellt genannt themes.xml auf die Verzeichnisse, sagte er :-)

Wenn Sie mehrere Sprachen und multithemes verwenden werden, können Sie einen Blick auf eine ähnliche Frage nehmen kann ich einige Minuten tat, bevor ... und bekam antwortete:

Multilanguage and multitheme at same time

Verwandte Themen