我正在尝试在SavedInstanceState中传递多个值。可以这样做吗?
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putInt(KEY_INDEX, array_counter);
savedInstanceState.putInt(SAVED_ANSWER, answer);
savedInstanceState.putInt(SAVED_VALUE, value);
}
但是在OnCreate中接收它们时它们都具有相同的值:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
array_counter = savedInstanceState.getInt(KEY_INDEX);
answer = savedInstanceState.getInt(SAVED_ANSWER);
value = savedInstanceState.getInt(SAVED_VALUE);
}
答案 0 :(得分:0)
Bundle
类似于HashMap<String, Object>
。因此,您可以在其中添加多个值。
最有可能的是:
您的测试存在缺陷(例如,您没有测试savedInstanceState
不是null
的情况,因此字段具有默认值),或者
您的密钥是相同的,因此您只在Bundle
中存储了一个网络项目,或者
当您将这些值放入Bundle
您可以在onCreate()
和onSaveInstanceState()
中放置断点,并检查您在两个地方使用的Bundle
。