I am trying to pass data from dialog to bottom sheet fragment. Here is how my bottom sheet fragment opens my dialog fragment
editAddDate.setOnClickListener{
val timeDatePickerDialog = TimeDatePickerDialog(requireContext())
timeDatePickerDialog.setOnDismissListener(this)
timeDatePickerDialog.show()
}
in my dialog fragment I implemented Dialog(context),TimePickerDialog.OnTimeSetListener, DatePickerDialog.OnDateSetListener as the following :
class TimeDatePickerDialog(context: Context) : Dialog(context),TimePickerDialog.OnTimeSetListener,
DatePickerDialog.OnDateSetListener {
private lateinit var pickDate: TextView
private lateinit var pickTime: TextView
private lateinit var repeat: TextView
private lateinit var done: TextView
private lateinit var cancel: TextView
private lateinit var selectedDate: String
private lateinit var selectedTime: String
private lateinit var binding: TimeDatePickerDialogBinding
var day=0
var month=0
var year=0
var time=0
var minutes=0
var savedDay=""
var savedMonth=""
var savedYear=""
var savedTime=0
var savedMinutes=0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.inflate(
LayoutInflater.from(context),
R.layout.time_date_picker_dialog,
null,
false
)
setContentView(binding.getRoot())
pickDate=binding.setDate
pickTime=binding.setTime
repeat=binding.repeat
cancel=binding.cancel
done=binding.done
initView()
}
override fun onTimeSet(view: TimePicker?, hourOfDay: Int, minute: Int) {
savedTime=hourOfDay
savedMinutes=minute
var time="$savedTime:$savedMinutes"
selectedTime=time
pickTime.text=selectedTime
}
override fun onDateSet(view: DatePicker?, year: Int, month: Int, dayOfMonth: Int) {
savedDay=dayOfMonth.toString()
var currentMonth=month+1
savedMonth=currentMonth.toString()
savedYear=year.toString()
var date="$savedDay,$savedMonth $savedYear"
selectedDate=date
pickDate.text = selectedDate
}
private fun getDateTimeCalendar(){
val c=Calendar.getInstance()
day=c.get(Calendar.DAY_OF_MONTH)
month=c.get(Calendar.MONTH)
year=c.get(Calendar.YEAR)
time=c.get(Calendar.HOUR)
minutes=c.get(Calendar.MINUTE)
}
private fun initView() {
pickDate.setOnClickListener {
getDateTimeCalendar()
DatePickerDialog(context, R.style.PickerDialogTheme, this, year, month, day).show()
}
pickTime.setOnClickListener {
getDateTimeCalendar()
TimePickerDialog(context, R.style.PickerDialogTheme, this, time, minutes, true).show()
}
cancel.setOnClickListener {
dismiss()
}
done.setOnClickListener {
dismiss()}
}
}
I want to send my date and time when done is clicked from this dialog to the bottom sheet dialog I cant find a way to do this I tried shared viewModels but I run into more issues than I expected can I do this in a simple way