【发布时间】:2023-03-15 13:29:01
【问题描述】:
将一些可序列化的值放入savedinstancestate,但savedInstanceState 为null。 onSaveInstanceState() 与日志消息一起调用,代码运行正确,但在 onCreate 方法中,在恢复数据后捕获了空指针并且保存的状态为空。课程是正确的。 (可序列化)已设置。我找不到错误。感谢帮助。
@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mb_activity);
mBList = new ArrayList<MBClass>();
mKList = new ArrayList<MKClass>();
nAList = new ArrayList<AClass>();
aList = new ArrayList<AClass>();
try {
mBList = (ArrayList<MBClass>) savedInstanceState.getSerializable("MBList");
mKList = (ArrayList<MKClass>) savedInstanceState.getSerializable("MKList");
aList = (ArrayList<AClass>) savedInstanceState.getSerializable("AList");
nAList = (ArrayList<AClass>) savedInstanceState.getSerializable("NAList");
Log.i("MB", "State geschrieben");
} catch (NullPointerException ne) {
//ne.printStackTrace();
Log.i("MB", "State Null");
}
}
@override
public void onSaveInstanceState(Bundle savedInstanceState) {
savedInstanceState.putSerializable("MKList", (Serializable) mKList);
savedInstanceState.putSerializable("MBList", (Serializable) mBList);
savedInstanceState.putSerializable("NAList", (Serializable) nAList);
savedInstanceState.putSerializable("AList", (Serializable) aList);
super.onSaveInstanceState(savedInstanceState);
Log.i("MB", "onSaveInstanceState");
}
【问题讨论】:
-
你让你的类可序列化了吗?
-
是的,数据是串行发送的
标签: android null onsaveinstancestate android-savedstate