Android Crashing auf ListPreference

Ich versuche, meiner Anwendung eine Listenvorgabe hinzuzufügen. Mein xml-Code ist der folgende:

<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="@string/calendarsettings"> <CheckBoxPreference android:key="syncWithCalendar" android:title="@string/setting_calendarsync" android:summary="@string/setting_calendarsync"></CheckBoxPreference> <CheckBoxPreference android:key="calendarAlarm" android:title="@string/settings_calendaralarm" android:summary="@string/settings_calendaralarm"></CheckBoxPreference> </PreferenceCategory> <PreferenceCategory android:title="@string/filters"> <ListPreference android:key="dayFilter" android:title="@string/dayfilter" android:summary="@string/dayfilter" android:entries="@array/dayFilterArray" android:entryValues="@array/dayFilterValues" /> </PreferenceCategory> </PreferenceScreen> 

Und meine Array-Werte sind:

  • Android gps mit AlertDialog aktivieren: wie man auf den Benutzer wartet, um Maßnahmen zu ergreifen?
  • Live Wallpaper Vorschau Thumbnail Größe
  • android drag view glatt
  • Android Keystore funktionierte nicht mehr
  • Mehrere Zeilen Radio-Tasten in Android?
  • Kopierschutzfallen
  •   <?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="dayFilterArray"> <item>a</item> <item>b</item> <item>c</item> <item>d</item> <item>e</item> <item>f</item> <item>g</item> </string-array> <string-array name="dayFilterValues"> <item>0</item> <item>3</item> <item>7</item> <item>14</item> <item>30</item> <item>90</item> <item>365</item> </string-array> </resources> 

    Allerdings, wenn ich versuche, mein Präferenzmenü einzugeben, stürzt es mit der folgenden Ausnahme ab:

     10-03 20:27:56.938: ERROR/AndroidRuntime(1111): Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String 

    Das bezieht sich auf diese Codezeile:

      addPreferencesFromResource(R.xml.preferences); 

    Irgendwelche Gedanken auf diesem und warum ist es passiert? Vielen Dank.

    FULL STACK TRACE:

     10-03 21:13:06.828: ERROR/AndroidRuntime(3045): FATAL EXCEPTION: main 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): java.lang.RuntimeException: Unable to start activity ComponentInfo{cPreferencesActivity}: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1748) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1764) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at android.app.ActivityThread.access$1500(ActivityThread.java:122) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1002) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at android.os.Handler.dispatchMessage(Handler.java:99) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at android.os.Looper.loop(Looper.java:132) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at android.app.ActivityThread.main(ActivityThread.java:4025) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at java.lang.reflect.Method.invokeNative(Native Method) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at java.lang.reflect.Method.invoke(Method.java:491) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at dalvik.system.NativeStart.main(Native Method) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at android.app.SharedPreferencesImpl.getString(SharedPreferencesImpl.java:203) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at android.preference.Preference.getPersistedString(Preference.java:1367) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at android.preference.ListPreference.onSetInitialValue(ListPreference.java:278) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at android.preference.Preference.dispatchSetInitialValue(Preference.java:1283) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at android.preference.Preference.onAttachedToHierarchy(Preference.java:1095) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at android.preference.PreferenceGroup.addPreference(PreferenceGroup.java:156) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at android.preference.PreferenceGroup.addItemFromInflater(PreferenceGroup.java:97) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at android.preference.PreferenceGroup.addItemFromInflater(PreferenceGroup.java:38) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at android.preference.GenericInflater.rInflate(GenericInflater.java:488) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at android.preference.GenericInflater.rInflate(GenericInflater.java:493) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at android.preference.GenericInflater.inflate(GenericInflater.java:326) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at android.preference.GenericInflater.inflate(GenericInflater.java:263) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at android.preference.PreferenceManager.inflateFromResource(PreferenceManager.java:269) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at android.preference.PreferenceActivity.addPreferencesFromResource(PreferenceActivity.java:1333) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at PreferencesActivity.onCreate(PreferencesActivity.java:33) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1712) 10-03 21:13:06.828: ERROR/AndroidRuntime(3045): ... 11 more 

  • Android: Was sind die empfohlenen Konfigurationen für Proguard?
  • Fügen Sie ein Kontrollkästchen "Remember me" hinzu
  • Android onResume Update-Liste Adapter
  • Android Computer Vision JavaCV OpenCV FastCV Vergleich
  • Android NDK finden dynamischen Link: nicht in der Lage, Bibliothek zu debuggen
  • Android: Handle unerwartete Internet-Trennung beim Herunterladen von Daten
  • 2 Solutions collect form web for “Android Crashing auf ListPreference”

    Du hast in den Vorlieben einen Integer vorher bestanden. ListActivity erwartet, dass ein String so cast fehlschlägt.

    Nennen Sie einfach diesen Code zu Beginn von onCreate , um den falschen Wert zu entfernen, und das sollte behoben werden:

     PreferenceManager.getDefaultSharedPreferences(this).edit().remove("dayFilter").commit(); 

    Wenn es immer noch passiert, als Sie wahrscheinlich mit dem dayFilter zweimal als Schlüssel für verschiedene Präferenzen oder dayFilter dass Schlüssel auf eigene Faust als Integer irgendwo in Ihrem Code.

    Wenn dies nicht funktioniert, dann versuchen Sie, Ihre Einstellungen von diesen Standorten zu entfernen:

     /data/data/YOUR_PACKAGE_NAME/shared_prefs/YOUR_PREFS_NAME.xml /data/data/YOUR_PACKAGE_NAME/shared_prefs/YOUR_PACKAGE_NAME_preferences.xml // on some devices /dbdata/databases/YOUR_PACKAGE_NAME/shared_prefs/YOUR_PREFS_NAME.xml 

    Wenn dies scheitert, versuchen Sie, die Anwendung zu deinstallieren, damit sie entfernt werden können (dies funktioniert nicht auf meinem Samsung Galaxy S – geteilte Vorlieben werden nicht gelöscht …)

    Ihre XML-Datei ist nicht korrekt geschrieben, Sie deklarieren ein Array von Zeichenfolgen, aber Sie geben Integers daher die Cast-Ausnahme.

      <string-array name="dayFilterValues"> <item>0</item> ... <item>365</item> </string-array> 

    Um es zu regeln, setzen Sie einfach Zitate um die Integer-Werte:

     <item>"365"</item> 

    Dann in deiner App musst du die Zeichenfolge in eine Integer mit:

     int value = Integer.parseInt(str); 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.