通过意图传递 Arraylist

pass Arraylist through intent

我要传递任务项

ArrayList<HashMap<String,String>> taskItems = new ArrayList<HashMap<String, String>>();

通过意图到第二个 activity

    ArrayList<String> stringArr = new ArrayList<String>();
    stringArr.add(KEY_TITLE);
    stringArr.add(KEY_INFO);
    stringArr.add(KEY_OBJECT);
    stringArr.add(KEY_LOCATION);

    ArrayList<Integer> intArr = new ArrayList<Integer>();
    intArr.add(R.id.title);
    intArr.add(R.id.info);
    intArr.add(R.id.object);
    intArr.add(R.id.location);

    //Neue Oberfläche starten
    Intent in = new Intent(ListViewActivity.this, ListMenuItemActivity.class);
    in.putStringArrayListExtra("StringAdapter",stringArr);
    in.putIntegerArrayListExtra("intAdapter",intArr);
    ------>in.putStringArrayListExtra("taskItems",taskItems);

    startActivity(in);

我已经标记了那个地方。 我如何通过 Intent 将 ArrayList 传递给我的 Activity?

HashMap 扩展了 Serializable 接口,因此您可以传递 ArrayListSerializable 对象:

ArrayList<HashMap<String, String>> taskItems = new ArrayList<>();
in.putExtra("taskItems", taskItems);

并像这样获取它:

ArrayList<HashMap<String, String>> taskItems = (ArrayList<HashMap<String, String>>) in
        .getSerializableExtra("taskItems");

这样做

发送

ArrayList<HashMap<String,String>> hashMap= new ArrayList<HashMap<String, String>>()

Intent intent = new Intent(SourceActivity.this, DestinationActivity.class);
intent.putExtra("hashMap", hashMap);
startActivity(intent);

收到

  Intent intent = getIntent();    
   ArrayList<HashMap<String,String>> hashMap = (ArrayList(HashMap<String, String>)) intent.getSerializableExtra("hashMap");