콜백을 이용하세요.
ServerDialog에 아래처럼 ok와 cancel 이벤트를 받을 함수를 전달하세요.
class ServerDialog(
context: Context,
var onOk: (() -> Unit)? = null,
var onCancel:(() -> Unit)? = null
) : Dialog(context), View.OnClickListener {
...
fun clickOk() {
this.dismiss()
onOk?.invoke()
}
fun clickCancel() {
this.dismiss()
onCancel?.invoke()
}
}
그리고 HomeFragment에서 ServerDialog를 호출하실 때 해당 함수를 처리하시면 됩니다.
ServerDialog(
context = requireContext(),
onOk = {
// 필요한 처리
},
onCancel = {
// 필요한 처리
}
).show()
아니면 DialogBuilder 통해서 커스텀 레이아웃을 전달하셔서 처리하셔도 됩니다. 이렇게 하면 굳이 별도의 Dialog클래스를 만드실 필요가 없구요.