Jump to content

Archived

This topic is now archived and is closed to further replies.

mac-ak47

getDefaultSharedPreferences ne marche pas

Recommended Posts

PROBLEME RESOLU /O/ (Voir Edit)

Bonjour ! J'ouvre ce topic car j'ai un problème avec la fonction getDefaultSharedPreferences, en effet elle ne me retourne pas la valeur de la clé demandée.

Code de la Main activity qui bloque

[...]
public class MainActivity extends Activity{
public String messageTraduit ="";
public int changeModeInt=2;
public String theme = "";

@Override
protected void onCreate(Bundle savedInstanceState) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
theme = prefs.getString("THEME_APP", null);

if(theme=="sombre"){
setTheme(android.R.style.Theme_Holo);
}
else if(theme=="clair"){
setTheme(android.R.style.Theme_Holo_Light);
}
[...]

Mes préfèrences

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceCategory android:title="Apparence">
<ListPreference
android:key="THEME_APP"
android:dialogTitle="Choisissez un thême"
android:entries="@array/liste_theme"
android:entryValues="@array/liste_theme_valeur"
android:title="Choisir un thême" />
</PreferenceCategory>
</PreferenceScreen>

Et enfin mon array


<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="liste_theme">
<item>Clair</item>
<item>Clair et bar d\'action sombre</item>
<item>Sombre</item>
</array>
<array name="liste_theme_valeur">
<item>clair</item>
<item>clair_sombre</item>
<item>sombre</item>
</array>
</resources>

J'essaye via cette clé de changer le thême de mon app mais il ne change pas du tout, est-ce que j'utilise mal la méthode getString(Strin key, Default); ?

Je sais que le problème vient de là car si j'indique comme valeur pour le theme:

theme = "sombre"
//Au lieu de
theme = prefs.getString("THEME_APP", null);

Le thème change bien en Holo.

Merci d'avance \o/

EDIT:

En fait le problème vient du fait que pour comparer ma variable theme avec la couleur j'utilisais "==", alors qu'en Java il faut utiliser .equals(String string), Voilà o/

Share this post


Link to post
Share on other sites





×
×
  • Create New...