¿Cómo pasar ArrayList <CustomeObject> de una actividad a otra? [duplicar]

Esta pregunta ya tiene una respuesta aquí:

Pasando arrailista de objetos entre actividades. 5 respuestas

Quiero enviar el siguiente ArrayList de una actividad a otra, por favor ayuda.

ContactBean m_objUserDetails = new ContactBean();
ArrayList<ContactBean> ContactLis = new ArrayList<ContactBean>(); 

Estoy enviando el arraylist anterior después de agregar datos como sigue

  Intent i = new Intent(this,DisplayContact.class);
  i.putExtra("Contact_list", ContactLis);
  startActivity(i);

Pero estoy teniendo problemas mientras lo recupero.

ArrayList<ContactBean> l1 = new ArrayList<ContactBean>();
Bundle wrapedReceivedList = getIntent().getExtras();
l1= wrapedReceivedList.getCharSequenceArrayList("Contact_list");

En este punto estoy recibiendo este error:

Type mismatch: cannot convert from ArrayList<CharSequence> to ArrayList<ContactBean>

Los implementos de mi clase ContactBean Serializable, por favor, también expliquen por qué tenemos que implementar una interfaz serializable.

Respuestas a la pregunta(4)

Su respuesta a la pregunta