Используйте начальное действие для метода результата:
val intent = Intent(this,CalendarActivity::class.java)
startActivityForResult(intent,REQUEST_CODE(int))
Затем при повторном нажатии действия календаря вы можете переопределить метод onBackPressed следующим образом:
override fun onBackPressed() {
val data = Intent().putExtra("key","fragment index to switch")
setResult(Activity.RESULT_OK,data)
finish()
}
Теперь в вашем действиис нижней панелью навигации:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == REQUEST_CODE(int) && resultCode == RESULT_OK) {
val index = data.getIntExtra("key")
//Then switch your fragment here.
}
}
Если вы не хотите переключаться, вы можете установить результат следующим образом:
setResult(Activity.RESULT_CANCELLED)
Надеюсь, это поможет.