Android 带有PreferenceActivity的StackOverflowerr错误

Android 带有PreferenceActivity的StackOverflowerr错误,android,preferenceactivity,stack-overflow,Android,Preferenceactivity,Stack Overflow,我创建了一个类似于Android ApiDemos中的PreferenceActivity 我正在使用以下代码创建活动: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.bridges_references); //setPreferenceScreen(createPrefe

我创建了一个类似于Android ApiDemos中的PreferenceActivity

我正在使用以下代码创建活动:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    addPreferencesFromResource(R.xml.bridges_references);
    //setPreferenceScreen(createPreferenceHierarchy());
}
这个xml:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android">

<PreferenceCategory
        android:title="Preferences">

    <CheckBoxPreference
            android:key="hasLoops"
            android:defaultValue="true"
            android:title="@string/title_hasLoops"
            android:summary="@string/summary_hasLoops" />

    <ListPreference
        android:key="width"
        android:defaultValue="7"
        android:summary="@string/summary_width"
        android:dialogTitle="@string/title_width"
        android:title="@string/title_width"
        android:entryValues="@array/size_values"/>

    <ListPreference
        android:key="height"
        android:defaultValue="7"
        android:summary="@string/summary_height"
        android:dialogTitle="@string/title_height"
        android:title="@string/title_height"
        android:entryValues="@array/size_values"/>

</PreferenceCategory>

</PreferenceScreen>
我得到一个StackOverflower错误:

java.lang.StackOverflowError
 at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1746)
 at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1696)
 at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1660)
 at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:1153)
 at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:420)
 at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1251)
 at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1587)
 at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1854)
 at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1696)
 at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1660)
 at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:1153)
(太长了,看不出到底是什么导致了它;它被切断了)

每当我包含ListPreference或EditTextPreference时,就会发生这种情况。CheckBoxPreference工作正常

有时,当我减小数组的大小时,它只工作一次,但当我第二次打开首选项时,我会再次得到StackOverflower错误

知道我做错了什么吗?类似的代码可以在ApiDemos中完美编译和运行

亲切问候,,
Stephan.

好的,显然这与我如何保存调用活动的状态有关,而不是与实际的首选项活动有关。我正在保存一个序列化对象,例如,当方向发生变化时,它可以正常工作,但在调用新活动时,由于某种原因,它不能正常工作

我是在将我的偏好完全改写成一个正常的活动后发现这个问题的,它仍然不断抛出相同的错误

哦,好吧。叹息

java.lang.StackOverflowError
 at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1746)
 at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1696)
 at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1660)
 at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:1153)
 at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:420)
 at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1251)
 at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1587)
 at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1854)
 at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1696)
 at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1660)
 at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:1153)