First, you don't use startActivityForResult() with a PreferenceActivity, usually. Use registerOnSharedPreferenceChangeListener(), or simply reload your preferences in onResume().
Second, it appears as though one of your android:entryValues is not a string-array, or you are manually setting one of those ListPreferences values to be an integer, or something. On Sun, Jun 26, 2011 at 2:18 PM, Raghav Sood <[email protected]> wrote: > Hi all, > I have an app, Quaker, in which the preference activity force closes. On the > emulator the activity opens but when you try to use any of the options it > force closes. On my device the app force closes when you select preferences > from the options menu. The device log is: > java.lang.RuntimeException: Unable to start activity > ComponentInfo{com.raghavsood.quaker/com.raghavsood.quaker.Preferences}: > java.lang.ClassCastException: java.lang.Integer > at > android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) > at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) > at android.app.ActivityThread.access$2300(ActivityThread.java:125) > at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) > at android.os.Handler.dispatchMessage(Handler.java:99) > at android.os.Looper.loop(Looper.java:123) > at android.app.ActivityThread.main(ActivityThread.java:4627) > at java.lang.reflect.Method.invokeNative(Native Method) > at java.lang.reflect.Method.invoke(Method.java:521) > at > com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) > at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) > at dalvik.system.NativeStart.main(Native Method) > Caused by: java.lang.ClassCastException: java.lang.Integer > at > android.app.ContextImpl$SharedPreferencesImpl.getString(ContextImpl.java:2754) > at android.preference.Preference.getPersistedString(Preference.java:1269) > at > android.preference.ListPreference.onSetInitialValue(ListPreference.java:232) > at > android.preference.Preference.dispatchSetInitialValue(Preference.java:1192) > at android.preference.Preference.onAttachedToHierarchy(Preference.java:1004) > at > android.preference.PreferenceGroup.addPreference(PreferenceGroup.java:156) > at > android.preference.PreferenceGroup.addItemFromInflater(PreferenceGroup.java:97) > at > android.preference.PreferenceGroup.addItemFromInflater(PreferenceGroup.java:38) > at android.preference.GenericInflater.rInflate(GenericInflater.java:488) > at android.preference.GenericInflater.inflate(GenericInflater.java:326) > at android.preference.GenericInflater.inflate(GenericInflater.java:263) > at > android.preference.PreferenceManager.inflateFromResource(PreferenceManager.java:251) > at > android.preference.PreferenceActivity.addPreferencesFromResource(PreferenceActivity.java:262) > at com.raghavsood.quaker.Preferences.onCreate(Preferences.java:19) > at > android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) > at > android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) > ... 11 more > Preferences.java line 19 is: > addPreferencesFromResource(R.xml.userpreferences); > > userpreferences.xml is: > > <?xml version="1.0" encoding="utf-8"?> > > <PreferenceScreen > > xmlns:android="http://schemas.android.com/apk/res/android"> > > <CheckBoxPreference > > android:key="PREF_AUTO_UPDATE" > > android:title="Auto refresh" > > android:summary="Select to turn on automatic updating" > > android:defaultValue="false" > > /> > > <ListPreference > > android:key="PREF_UPDATE_FREQ" > > android:title="Refresh frequency" > > android:summary="Frequency at which to refresh earthquake list" > > android:entries="@array/update_freq_options" > > android:entryValues="@array/update_freq_values" > > android:dialogTitle="Refresh frequency" > > android:defaultValue="60" > > /> > > <ListPreference > > android:key="PREF_MIN_MAG" > > android:title="Minimum magnitude" > > android:summary="Select the minimum magnitude earthquake to report" > > android:entries="@array/magnitude_options" > > android:entryValues="@array/magnitude" > > android:dialogTitle="Magnitude" > > android:defaultValue="3" > > /> > > </PreferenceScreen> > > The preferences activity is declared in the manifest and launched through: > > case (MENU_PREFERENCES): { > > Intent i = new Intent(this, Preferences.class); > > startActivityForResult(i, SHOW_PREFERENCES); > > return true; > > } > > Does anyone have any idea as to what could be causing this problem? Please > help as this error is live on the market and I could lose users because of > it. > Thanks > -- > Raghav Sood > http://www.raghavsood.com/ > http://www.androidappcheck.com/ > http://www.telstop.tel/ > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en -- Mark Murphy (a Commons Guy) http://commonsware.com | http://github.com/commonsguy http://commonsware.com/blog | http://twitter.com/commonsguy Android 3.1 Programming Books: http://commonsware.com/books -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

