我想从以下Android片段文档中了解一些内容:
Android fragment docs
在页面末尾的示例中,mcurcheckposition int作为“curchoice”保存在bundle中:
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("curChoice", mCurCheckPosition);
}
但是,在示例开始时,当检查并可能检索“curchoice”时,提供了第二个参数“0”:
if (savedInstanceState != null) {
// Restore last state for checked position.
mCurCheckPosition = savedInstanceState.getInt("curChoice", 0);
}
这个零在那里干什么?引用“curchoice”的目的当然是首先检索保存在它下面的值吗?
最佳答案
这个零在那里干什么?
引用the documentation,它是“如果[键]不存在,则返回的值”。
引用“curchoice”的目的当然是首先检索保存在它下面的值吗?
是的,在这种情况下,默认值似乎是多余的。通常,默认值适用于键被有条件地添加到Bundle
的情况,因此Bundle
的使用者可以干净地处理未添加键的情况。