onSaveInstanceState()およびonRestoreInstanceState()を使用して、多次元配列を保存および復元するにはどうすればよいですか?
ExpandableListViewを使用しています。私には次のグループと子供がいます。
public static String[] groups = new String[] { "New York", "California",
"Washington", "Florida", "Iowa"};
public static String[][] children = new String[][] { { } };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
.........................
if(condition){
children = populateChildren();
}
.........................
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
if (groups != null && children != null) {
savedInstanceState.putStringArray("Groups", groups);
savedInstanceState.putSerializable("Children", children);
}
super.onSaveInstanceState(savedInstanceState);
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
if (savedInstanceState != null) {
groups = savedInstanceState.getStringArray("Groups");
children = (String[][]) savedInstanceState
.getSerializable("Children");
}
super.onRestoreInstanceState(savedInstanceState);
}
次のjava.lang.ClassCastException例外が発生しました。
01-19 17:12:55.417:E / AndroidRuntime(708):原因:java.lang.RuntimeException:アクティビティを開始できませんComponentInfo {com.abc.myapp/ com.abc.myapp.mylistActivity}:java.lang。 ClassCastException:[Ljava.lang.Object;
01-19 17:12:55.417:E / AndroidRuntime(708):android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
01-19 17:12:55.417:E / AndroidRuntime(708):android.app.ActivityThread.startActivityNow(ActivityThread.java:2503)
01-19 17:12:55.417:E / AndroidRuntime(708):android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)
01-19 17:12:55.417:E / AndroidRuntime(708):android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)で
01-19 17:12:55.417:E / AndroidRuntime(708):android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-19 17:12:55.417:E / AndroidRuntime(708):android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
01-19 17:12:55.417:E / AndroidRuntime(708):... 11 more 01-19 17:12:55.417:E / AndroidRuntime(708):原因:java.lang.ClassCastException:[Ljava.lang 。物体; 01-19 17:12:55.417:E / AndroidRuntime(708):com.abc.myapp.mylistActivity.onRestoreInstanceState(JobInfo.java:303)
01-19 17:12:55.417:E / AndroidRuntime(708):android.app.Activity.performRestoreInstanceState(Activity.java:815)で
01-19 17:12:55.417:E / AndroidRuntime(708):android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1096)
01-19 17:12:55.417:E / AndroidRuntime(708):android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2641)
01-19 17:12:55.417:E / AndroidRuntime(708):...19詳細
多次元配列を保存および取得する方法はありますか?