My DialogFragment
private lateinit var listener: OnItemClickDialogListener
My interface
interface OnItemClickDialogListener{
fun onItemClickDialog(sortDesc: Boolean){
}
And my problem
listener = try {
targetFragment as OnItemClickDialogListener
}catch (e: TypeCastException){
throw TypeCastException()
}
targetFragment is deprecated and I don't know how to fix it. I spent a lot of time find solution.
My full code:
class SortDialogFragment: DialogFragment() {
private lateinit var listener: OnItemClickDialogListener
private lateinit var radioGroup: RadioGroup
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val builder = AlertDialog.Builder(requireContext())
val inflater = requireActivity().layoutInflater
val view: View = inflater.inflate(R.layout.fragment_dialog_sort, null)
radioGroup = view.findViewById(R.id.sort_RG)
builder.setView(view)
.setPositiveButton("OK") {di, i ->
when(radioGroup.checkedRadioButtonId){
R.id.sort_desc_RB -> { listener.onItemClickDialog(true) }
R.id.sort_asc_RB -> { listener.onItemClickDialog(false) }
}
}
.setNegativeButton("Cancel") {di, i -> }
return super.onCreateDialog(savedInstanceState)
}
override fun onAttach(context: Context) {
super.onAttach(context)
listener = try {
targetFragment as OnItemClickDialogListener
}catch (e: TypeCastException){
throw TypeCastException()
}
}
interface OnItemClickDialogListener{
fun onItemClickDialog(sortDesc: Boolean){
}
}
}