0

ich eine ListPreference in meiner Tätigkeit haben:sharedPref.getString() Kommissionierung Wert von ListPreference der Einträge statt entryValues ​​

<ListPreference 
     android:key="pref_rValue" 
     android:entries="@array/r" 
     android:summary="***" 
     android:entryValues="@array/rValues" 
     android:title="Choose" 
     android:defaultValue="2"/> 

deren android:entries="@array/r" und android:entryValues="@array/rValues" in strings.xml wie diese separat definiert:

<string-array name="r"> 
     <item>0.5 km</item> 
     <item>1 km</item> 
     <item>2 km</item> 
     <item>5 km</item> 
     <item>10 km</item> 
    </string-array> 

    <string-array name="rValues"> 
     <item>0.5</item> 
     <item>1.0</item> 
     <item>2.0</item> 
     <item>5.0</item> 
     <item>10.0</item> 
    </string-array> 

Schlüssel definiert in SettingActivity: public static final String KEY_PREF_SYNC_CONN = "pref_rValue";

Hier ist ho w ich den Schlüssel bin mit und dann den Wert dieser ListPreference in MainActivity zu bekommen versuchen:

SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this); 
String rValue = sharedPref.getString(SettingsActivity.KEY_PREF_SYNC_CONN, "5"); 
Toast.makeText(getBaseContext(), "rValue: " + rValue, Toast.LENGTH_SHORT).show(); 

aber wenn ich versuche, rValue Zeichenfolge als Double zu verwenden, erhalte ich diese Fehlermeldung: java.lang.NumberFormatException: Invalid double: "2 km" und der Toast oben zeigt auch "rValue: 2 km".

Ich möchte wissen, warum anstelle von Wert von android:entryValues="@array/rValues" Wert von android:entries="@array/r" Wert nimmt?

Bitte helfen Sie mir bei diesem Problem.

+0

Haben Sie versucht, die android: entries und android: entryValues ​​im XML auszutauschen? –

Antwort

0

Es war eine wirklich einfache und dumme Frage.

Ich habe nur die App deinstalliert und nach der Installation wieder alles gut funktioniert.

Aber ich würde gerne wissen, wie man dafür sorgt, dass sowas in Zukunft nicht wieder passiert.

Verwandte Themen