Agregar datos a arrayList de otra actividad

Tengo una actividad para crear un nuevo elemento para listView. Al hacer clic en el button Guardar de esta actividad, quiero agregar date a arrayList. Este arrayList está en otra actividad y esta actividad tiene un listView y su adaptador obtiene elementos de arrayList

Este es mi adaptador:

inner class mo3d1Adapter : BaseAdapter { override fun getItemId(p0: Int): Long { return p0.toLong() } override fun getCount(): Int { return listOfmo3d.size } var listOfmo3d = ArrayList<mo3dInfo>() var context: Context? = null constructor(context: Context, listOfmo3d: ArrayList<mo3dInfo>) : super() { this.listOfmo3d = listOfmo3d this.context = context } override fun getView(p0: Int, p1: View?, p2: ViewGroup?): View { val mo3d = listOfmo3d[p0] var inflatormo3d = context!!.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater var myViewmo3d = inflatormo3d.inflate(R.layout.item_mo3d, null) myViewmo3d.setOnClickListener() { Toast.makeText(context, " click" , Toast.LENGTH_SHORT).show() var intent = Intent(context, mo3dDetails::class.java) startActivity(intent) } myViewmo3d.meeting_time_mo3d.text = mo3d.time.toString() myViewmo3d.meeting_name_mo3d.text = mo3d.name.toString() // myViewmo3d .meeting_time.text = mo3d .time.toString() myViewmo3d.meeting_date_mo3d.text = mo3d.date.toString() // myViewmo3d.attendance_number_.text = mo3d.n2.toString()!! return myViewmo3d } override fun getItem(p0: Int): Any { return listOfmo3d[p0] } } 

Esta es mi list de arreglos:

  var listOfmo3d = ArrayList<mo3dInfo>() 

Esto es onclick en la function del button de save:

 fun SaveAction(view: View) { var i = MainMo3d() i.listOfmo3d.add(mo3dInfo("f", "test", "test")) } 

¿Cómo puedo pasar los datos de la actividad a otra actividad y agregarlos a arrayList?

Puede enviar desde una actividad como esta

  List< mo3dInfo > l = new ArrayList<>(); Type listOfTestObject = new TypeToken<List<mo3dInfo>>() { }.getType(); String s = new Gson().toJson(l,listOfObjects); Intent intent = new Intent(context,activity); intent.putExtra("data",s); startActivity(intent); 

Y puedes recibir datos como este

 Type type=new TypeToken<List<mo3dInfo>>(){}.getType(); List<mo3dInfo> list=new Gson().fromJson(getintent.getStringExtra("data"),type)); 

Usando Parcelable de Kotlin 1.1.4

Use la anotación @Parcelize en su class mo3dInfo que se extiende desde Parcelable

 @Parcelize class mo3dInfo():Parceable 

NOTA : El estudio le da error. Pero puede ignorar este error; las verificaciones de pelusa aún no se han actualizado para comprender @Parcelize. El problema correspondiente de YouTrack está aquí:

https://youtrack.jetbrains.com/issue/KT-19300

y luego pasa el object de la matriz de mo3dInfo en Intención como

 intent.putExtra(key,arrayOfmo3dInfo) 

luego analizar este object en su listVer actividad

  var array: ArrayList<mo3dInfo> = intent.getParcelableExtra(key) 

Más información refiera Kotlin plotble