Как отслеживать закрытие BottomSheetDialogFragment и возвращать выбранное значение?

У меня есть BottomSheetDialogFragment, и я хочу при его закрытии возвращать выбранное внутри него значение.

Моя реализация

class ModalBottomSheet(val status:Int = 1) : BottomSheetDialogFragment() {

 lateinit var wantReadRadioButton: RadioButton
 lateinit var readedRadioButton: RadioButton
 lateinit var readNowRadioButton: RadioButton

override fun onCreateView(
    inflater: LayoutInflater,
    container: ViewGroup?,
    savedInstanceState: Bundle?
): View? = inflater.inflate(R.layout.book_status_bottom_sheet, container, false)

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)

    wantReadRadioButton = view.findViewById(R.id.wantReadRadio)
    readedRadioButton = view.findViewById(R.id.readedRadio)
    readNowRadioButton = view.findViewById(R.id.readNowRadio)

    val selectedStatus: Int = status

    when(selectedStatus){
        1 -> {
            wantReadRadioButton.isChecked = false
            readedRadioButton.isChecked = false
            readNowRadioButton.isChecked = false
        }
        2 -> wantReadRadioButton.isChecked = true
        3 -> readedRadioButton.isChecked = true
        4 -> readNowRadioButton.isChecked = true
    }



}
companion object {
    const val TAG = "ModalBottomSheet"
}

fun getSelectedStatus(): Int{
    if( wantReadRadioButton.isChecked){
        return 2
    }
    else if(readedRadioButton.isChecked){
        return 3
    }

    else if(readNowRadioButton.isChecked){
        return 4
    }
    else{
        return 1
    }
}

}

Как я его вызываю

 modalBottomSheet.show(activity?.supportFragmentManager!!, ModalBottomSheet.TAG)

Ответы (0 шт):