gpt4 book ai didi

android - 有关使用DialogFragment的DatePickerDialog的几个问题

转载 作者:行者123 更新时间:2023-12-02 12:40:22 24 4
gpt4 key购买 nike

我需要设置datePickerDialog,并禁用所有将来的日期和一个月前的所有日期,
例如:如果今天是04/05/2020,我需要的范围是04/04/2020-04/05/2020。

我该如何设置?我尝试了最小/最大方法,但问题是我使用了扩展了DialogFragment的不同片段。

这是我的代码:

class DatePickerFragmentDialog : DialogFragment(), DatePickerDialog.OnDateSetListener {

override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
// Use the current date as the default date in the picker
val c = Calendar.getInstance()
val year = c.get(Calendar.YEAR)
val month = c.get(Calendar.MONTH)
val day = c.get(Calendar.DAY_OF_MONTH)
// Create a new instance of DatePickerDialog and return it
return DatePickerDialog(requireActivity(), this, year, month, day)
}
override fun onDateSet(view: DatePicker?, year: Int, month: Int, dayOfMonth: Int) {

}
}

我从我的主要片段中称呼它:
DatePickerFragmentDialog().show(parentFragmentManager, "datePicker" )

-因为不赞成使用getSupportFragment,所以我在这里称 parentFragmentManager,这是正确的选择吗?

和最后一个问题-我可以从 onDateSet函数中选择用户,但是问题是该函数在 DatePickerFragmentDialog中,如何将变量从该函数传递给我的主要片段和 View ?

最佳答案

对于第一个问题,您可以在onCreateDialog中设置最小日期和最大日期:

override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val c = Calendar.getInstance()
val year = c.get(Calendar.YEAR)
val month = c.get(Calendar.MONTH)

val day = c.get(Calendar.DAY_OF_MONTH)
val d = DatePickerDialog(requireActivity(), this , year, month, day)
val dp = d.datePicker

dp.maxDate = //Do your calculation
dp.min= //Do your calculation

return d
}

对于另一个问题-您可以在主片段中实现 DatePickerDialog.OnDateSetListener并从那里调用 onDateSet

关于android - 有关使用DialogFragment的DatePickerDialog的几个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61593778/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com