【发布时间】:2015-07-27 14:02:49
【问题描述】:
在onCreate 中,我从意图中获得了一个额外的可序列化到我的活动的itemsList 中
itemsList = (ArrayList<HashMap<String, String>>) intent
.getSerializableExtra("sliding_menu_content");
然后在活动中,我将一些其他地图元素添加到itemsList 数组。
令我惊讶的是,改变设备的方向,getSerializableExtra 返回itemsList 的更新状态,包括所有地图元素的添加。怎么可能?
编辑:
我的通话活动添加了这样的额外内容
ArrayList<HashMap<String, String>> startingList =
new ArrayList<HashMap<String, String>>();
i.putExtra("sliding_menu_content", startingList);
startActivity(i);
据我了解,传递参数是一个要评估的假设,当我通过 getSerializableExtra 分配 itemsList 时,我得到的不是 其值的副本,而是得到一个 指向调用活动传递的原始对象的指针(即startingList),则对其的每次更新都是对原始值的更新。
【问题讨论】:
-
请检查您没有调用更新 Intent 的代码,例如。 #onResume
-
您是通过哪种方法将其他地图元素添加到 itemList 数组中的?
-
检查:Intent 没有变化。
-
我在
onPostExecute中添加了其他项目,覆盖了嵌套在保留片段中的 AsyncTask 的 onPostExecute()。 -
我用假设来评估我的问题,谢谢
标签: android android-intent android-activity parameters parameter-passing