我的问题如下,我有一个我在主活动中初始化的hashmap,我的对象类实现了seriliazable。我的问题是我可以将对象传递给另一个活动并读取原始hasmap的值,但是当我在新活动中向hashmap添加新值时,它实际上不会在活动结束时更改原始hashmap。 / p>
这是我如何传递给其他活动
function transformEmployeeData(array) {
var objectsArray = [];
for (i=0; i<array.length; i++) {
var object = {};
for (j=0; j<array[i].length; j++) {
var keys = array[i][j][0];
object[keys] = array[i][j][1];
}
objectsArray.push(object);
}
return objectsArray);
}
这是其他活动如何使用传递的值
HashMap<String,Book> detail1 = new HashMap<String,Book>;
Intent i2 = new Intent(MainActivity.this, PlaceHold.class);
bundle.putSerializable("hashMap",detail1);
i2.putExtras(bundle);
startActivity(i2);
我的问题是,当我将hashamp传递给其他类时,添加的书籍不会出现。仅存在我在MainActivity oncreate上设置的默认值。
答案 0 :(得分:0)
您发送到第二个Activity的hashmap不是第一个Activity的hashmap,它是它的序列化版本。
您应该使用startActivityForResult而不是startActivity从第一个Activity导航到第二个Activity,并使用setResult从第二个Activity返回更新的hashmap