Android Serializable传递数据并返回更改的数据

时间:2017-05-08 22:57:02

标签: java android

我的问题如下,我有一个我在主活动中初始化的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上设置的默认值。

1 个答案:

答案 0 :(得分:0)

您发送到第二个Activity的hashmap不是第一个Activity的hashmap,它是它的序列化版本。

您应该使用startActivityForResult而不是startActivity从第一个Activity导航到第二个Activity,并使用setResult从第二个Activity返回更新的hashmap