How can I pass a list of objects to another activity ?

Im trying this and its not working...

**Activity A**

```
Intent i = new Intent(this,MainActivity.class);
i.putParcelableArrayListExtra("list",listCsv);
setResult(Activity.RESULT_OK,i);
finish();

```

**Activity B**

```
ArrayList<Contato> lAgenda = 
(ArrayList<Contato>) getIntent().getSerializableExtra("lista");

```

And in my `Activity` B my list `lAgenda` doesnt get the list of the `Activity` A,
I got a `NULL` value.

My ContatoVO class

```
public class ContatoVO implements Serializable,Parcelable{
    private static final long serialVersionUID = 1L;
    private long id;
    private String nome;
    private String endereco;
    private String telefone;
    private String estado;
    private int idEstado;

        public long getId() {
            return id;
        }

        public void setId(long id) {
            this.id = id;
        }

        public int getIdEstado()
        {
            return idEstado;
        }

        public void setIdEstado(int id)
        {
            this.idEstado = id;
        }

        public String getEstado() {
            return estado;
        }

        public void setEstado(String estado) {
            this.estado = estado;
        }

        public String getNome() {
            return nome;
        }

        public void setNome(String value) {
            this.nome = value;
        }

        public String getEndereco() {
            return endereco;
        }

        public void setEndereco(String value) {
            this.endereco = value;
        }

        public String getTelefone() {
            return telefone;
        }

        public void setTelefone(String value) {
            this.telefone = value;
        }
        // Will be used by the ArrayAdapter in the ListView
        @Override
        public String toString() {
            return nome;
        }

        @Override
        public int describeContents() {
            return 0;
        }

        @Override
        public void writeToParcel(Parcel dest, int flags) {

            dest.writeString(nome);
            dest.writeString(endereco);
            dest.writeString(telefone);
        }

}

```

Function that sends data intent to Activity

```
public final void lerCsv(Context context)
    {

        AssetManager assetManager = context.getAssets();
        ArrayList<ContatoVO> listaCsv = new ArrayList<ContatoVO>();

        try
        {
            InputStream iStream = assetManager.open("teste.csv");
            InputStreamReader iStreamReader = new InputStreamReader(iStream);
            CSVReader csvReader = new CSVReader(iStreamReader,';');

            String[] registro = null;

            //pula cabeçalho
            csvReader.readNext();

            while((registro = csvReader.readNext()) != null)
            {

                ContatoVO contato = new ContatoVO();
                contato.setNome(registro[0]);
                contato.setEndereco(registro[1]);
                contato.setTelefone(registro[2]);

                listaCsv.add(contato);

            }

            csvReader.close();

            Intent i = new Intent(this,MainActivity.class);

            i.putParcelableArrayListExtra("lista",listaCsv);
            setResult(Activity.RESULT_OK,i);
            finish();
        }
        catch(IOException ex)
        {
            ex.printStackTrace();
        }

    }

```

Where i Try to get this data(list)

```
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        ArrayList<ContatoVO> lAgendaVO = null;
        try {
            super.onActivityResult(requestCode, resultCode, data);

                lAgendaVO = data.getParcelableArrayListExtra("lista");

                lContatoDAO.open();     
                lContatoDAO.InserirListaCsv(lAgendaVO);
                adapter.notifyDataSetChanged();

        } catch (Exception ex) {
            trace("Erro : " + ex.getMessage());
        }
    }

```