Добавление данных в массивList из другого действия

У меня есть активность для создания нового элемента для listView. При нажатии кнопки «Сохранить» этого действия я хочу добавить дату в массивList. Этот массивList находится в другом действии, и это действие имеет listView, и его адаптер получает элементы из arrayList

Это мой адаптер:

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] } } 

Это мой массив:

  var listOfmo3d = ArrayList<mo3dInfo>() 

Это функция кнопки «Сохранить клик»:

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

Как я могу передать данные из активности в другую деятельность и добавить ее в arrayList?

Вы можете отправить от такой активности

  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); 

И вы можете получать такие данные

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

Использование Parcelable от Kotlin 1.1.4

Использовать аннотацию @Parcelize в вашем классе mo3dInfo, простирающемся от Parcelable

 @Parcelize class mo3dInfo():Parceable 

ПРИМЕЧАНИЕ . Студия дает вам ошибку. Но вы можете игнорировать эту ошибку; чеки lint еще не обновлены, чтобы понять @Parcelize. Соответствующая проблема YouTrack находится здесь:

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

а затем передать объект массива mo3dInfo в Intent, как

 intent.putExtra(key,arrayOfmo3dInfo) 

затем проанализировать этот объект в вашей активности listView

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

Более подробная информация о Kotlin