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.
Haben Sie versucht, die android: entries und android: entryValues im XML auszutauschen? –