【发布时间】:2021-05-24 06:37:30
【问题描述】:
我有两个文本视图可以在 Android 的 DatePicker 对话框中设置日期。
我已经完成了 startDate(From Date) 和 endDate(To Date) 的验证,如下所示:
/**
* Dialog for selecting custom date.
* */
private fun openDatePickerDialog(view: TextView, dateType: String) {
activity?.let { KeyboardUtils.hideKeyboard(it) }
val calendar = Calendar.getInstance()
val dialog = DatePickerDialog(activity, { _, year, month, day_of_month ->
calendar[Calendar.YEAR] = year
calendar[Calendar.MONTH] = month
calendar[Calendar.DAY_OF_MONTH] = day_of_month
Log.e(">>>>>>>>>> ", ">>>>>>>>>> else")
val myFormat = OverAllAppDateDisplayFormat
val sdf = SimpleDateFormat(myFormat, Locale.getDefault())
view.text = sdf.format(calendar.time).toString()
when (dateType) {
"from" -> {
filterDateFrom = view.text.toString()
}
"to" -> {
filterDateTo = view.text.toString()
}
}
}, calendar[Calendar.YEAR], calendar[Calendar.MONTH], calendar[Calendar.DAY_OF_MONTH])
if (view.id == R.id.tvDateTo && filterDateFrom.isNotEmpty() && filterDateFrom.contains("-")) {
val sdf = SimpleDateFormat(OverAllAppDateDisplayFormat)
try {
val mDate = sdf.parse(filterDateFrom)
dialog.datePicker.minDate = mDate.time
dialog.datePicker.maxDate = calendar.timeInMillis
} catch (e: ParseException) {
e.printStackTrace()
}
} else if (view.id == R.id.tvDateFrom && filterDateTo.isNotEmpty() && filterDateTo.contains("-")) {
val sdf = SimpleDateFormat(OverAllAppDateDisplayFormat)
try {
val mDate = sdf.parse(filterDateTo)
dialog.datePicker.maxDate = mDate.time
} catch (e: ParseException) {
e.printStackTrace()
}
} else {
//by default max date
dialog.datePicker.maxDate = calendar.timeInMillis
}
dialog.show()
}
现在我想用特定文本视图上设置的最后日期打开这个对话框, 即,如果在 textView 上设置了 24-05-2021,则 datePicker 对话框应打开并选择相同的日期。
我需要在哪里改变才能实现这个目标?
谢谢。
【问题讨论】:
标签: android kotlin android-datepicker datepickerdialog