Прежде всего, от MainActivity до SecondActivity вам нужно использовать startActivityForResult ()
val requestCode = 0
val intent = Intent(this, SecondActivity::class.java)
intent.putExtra("your key","your value")
this.startActivityForResult(intent, requestCode)
вы объявляете код запроса, целое число, объявляете намерение, как вы делаете сейчас, и помещаете свой ключ внамерение поставить дополнительно.Важная часть: вам нужно использовать startActivityForResult с вашими намерениями и кодом запроса.
Теперь, во втором упражнении, чтобы получить строку намерения:
val string = intent.getStringExtra("your key")
Когда вы будете готовы вернуть значение, используйте:
val resultCode = 1
val returnIntent = Intent()
returnIntent.putExtra("your key","your value")
setResult(resultCode, intent)
finish()
Где высоздайте новое намерение, вы добавляете то, что вам нужно, чтобы добавить дополнительные намерения, и возвращаете его с помощью setResult - запомните resultCode и requestCode.Завершить () - закрыть действие, в котором вы сейчас находитесь (только заданный результат не приведет к закрытию действия)
Наконец, для основного действия вам необходимо переопределить этот метод:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (requestCode == yourRequestCode){
if (resultCode == yourResultCode){
//do something
}
}
}