1

Wenn ich versuche, den Standardwert meiner „sync_frequency“ in den SharedPreferences zu lesen es 30 gibt, sollte aber 300000Android ListPreference liefert falschen Wert

Meine Ressourcen:

<resources> 
     <string name="pref_title_sync_frequency">Intervall</string> 
<string-array name="pref_sync_frequency_titles"> 
    <item>5 min.</item> 
    <item>10 min.</item> 
    <item>15 min.</item> 
    <item>20 min.</item> 
    <item>30 min.</item> 
    <item>60 min.</item> 
    <item>Nimals</item> 
</string-array> 
<string-array name="pref_sync_frequency_values"> 
    <item>300000</item> 
    <item>600000</item> 
    <item>900000</item> 
    <item>1200000</item> 
    <item>1800000</item> 
    <item>3600000</item> 
    <item>-1</item> 
</string-array> 
</resources> 

Meine Vorlieben Seite:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 

<ListPreference 
    android:defaultValue="300000" 
    android:entries="@array/pref_sync_frequency_titles" 
    android:entryValues="@array/pref_sync_frequency_values" 
    android:key="sync_frequency" 
    android:negativeButtonText="@null" 
    android:positiveButtonText="@null" 
    android:title="@string/pref_title_sync_frequency" /> 


<SwitchPreference 
    android:defaultValue="true" 
    android:dependency="sync_frequency" 
    android:key="sync_appoint_only_on_wifi" 
    android:title="@string/pref_title_on_wifi_appo" /> 

<SwitchPreference 
    android:defaultValue="true" 
    android:dependency="sync_frequency" 
    android:key="sync_feed_only_on_wifi" 
    android:title="@string/pref_title_on_wifi_feed" /> 

die Art, wie ich versuche, den Wert zu erhalten:

public int syncIntervall(){ 
    SharedPreferences spr = PreferenceManager.getDefaultSharedPreferences(ctx); 
    return Integer.valueOf(spr.getString("sync_frequency", "300000")); 
} 

Rückgabe 30;

+0

Das ist seltsam, innit ... Können Sie debuggen, um zu sehen, was 'spr' genau enthält? – Vucko

+0

Ja, es ist ein SharedPreferences-Objekt;) und in dem containing mMap-Objekt ist der Wert auch 30. – Neuxz

+0

Ahhh, es ist nur ein SPF (Stupid Programmer Failure), ich musste den Präferenz-Cache auf meinem Telefon löschen. – Neuxz

Antwort

1

Das Problem bestand darin, dass sich der Voreinstellungen-Cache der Anwendung nicht selbst zurücksetzt, indem er eine neue Version der App installiert. Ich musste die App manuell deinstallieren.