【问题标题】:Several questions about DatePickerDialog using DialogFragment关于 DatePickerDialog 使用 DialogFragment 的几个问题
【发布时间】:2020-05-04 13:47:16
【问题描述】:

我需要设置一个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 中我如何将变量从这个函数传递到我的主函数片段和视图?

【问题讨论】:

    标签: android kotlin datepicker datepickerdialog


    【解决方案1】:

    对于您的第一个问题,您可以在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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-12
      • 2011-08-24
      • 2013-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多