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>
次を使用して設定アクティビティを開始しようとすると:
Intent intent = new Intent(activity.getApplicationContext(), BridgesPreferenceActivity.class);
activity.startActivity(intent);
私は StackOverflowError を受け取ります:
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 は問題なく動作します。
配列のサイズを小さくすると 1 回は機能することがありますが、設定を 2 回目に開くとすぐに StackOverflowError が再び発生します。
私が間違っている可能性があることは何ですか?同様のコードは、ApiDemos で完全にコンパイルおよび実行されます。
よろしく、ステファン。