【发布时间】:2020-12-06 22:11:36
【问题描述】:
我尝试了所有方法,但似乎无法让应用程序打开日期选择器对话框。应用程序每次都崩溃。 我尝试了多种解决方案,但似乎都有相同的结果。如何在片段中打开 Kotlin 中的日期选择器?
当我在 Activity 类中使用该代码时它可以工作,但我希望它在 Fragment 中工作。
calendar = Calendar.getInstance()
year = calendar.get(Calendar.YEAR)
month = calendar.get(Calendar.MONTH)
day = calendar.get(Calendar.DAY_OF_MONTH)
showDate(year, month + 1, day)
fun setDate(view: View?) {
showDialog(999)
Toast.makeText(
applicationContext, "Please select a date",
Toast.LENGTH_SHORT
)
.show()
}
override fun onCreateDialog(id: Int): Dialog {
return if (id == 999) {
DatePickerDialog(
this,
myDateListener, year, month, day
)
} else onCreateDialog(1)
}
private val myDateListener =
DatePickerDialog.OnDateSetListener { arg0, arg1, arg2, arg3 ->
// arg1 = year
// arg2 = month
// arg3 = day
showDate(arg1, arg2 + 1, arg3)
}
/**
* This method shows the selected date in the view
*/
private fun showDate(year: Int, month: Int, day: Int) {
dateView.text = StringBuilder().append(day).append("/")
.append(month).append("/").append(year)
}
showDialog() 在 Fragment 中不起作用,我尝试实现 DialogFragment 但无济于事。 我该如何解决这个问题?
【问题讨论】:
标签: android android-studio kotlin datepicker fragment