android - 如何将时间选择器中的文本“取消”更改为 android kotlin 中的另一个文本?
问题描述
class DatePickerFragment : DialogFragment(), DatePickerDialog.OnDateSetListener {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val c: Calendar = Calendar.getInstance()
val year: Int = c.get(Calendar.YEAR)
val month: Int = c.get(Calendar.MONTH)
val day: Int = c.get(Calendar.DAY_OF_MONTH)
return DatePickerDialog(getActivity()!!, this, year, month, day)
}
override fun onDateSet(view: DatePicker, year: Int, month: Int, day: Int) {
val tv: TextView = activity!!.findViewById(R.id.txt_date_picker) as TextView
tv.setText("$day - $month - $year")
}
override fun onCancel(dialog: DialogInterface?) {
Toast.makeText(activity,"date picker Canceled.", Toast.LENGTH_SHORT).show()
super.onCancel(dialog)
}
}
编辑:尝试回答后的所有代码:
class TimePickerFragment: DialogFragment(), TimePickerDialog.OnTimeSetListener{
private lateinit var calendar:Calendar
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
calendar = Calendar.getInstance()
val hour = calendar.get(Calendar.HOUR_OF_DAY)
val minute = calendar.get(Calendar.MINUTE)
return TimePickerDialog(
activity, // Context
android.R.style.Theme_Holo_Light_Dialog_NoActionBar_MinWidth, // Theme
this, // TimePickerDialog.OnTimeSetListener
hour, // Hour of day
minute, // Minute
false // Is 24 hour view
)//.apply {
// getButton(DialogInterface.BUTTON_NEGATIVE).setText(R.string.myCancelString)
// }
}
override fun onTimeSet(view: TimePicker, hourOfDay: Int, minute: Int) {
// Do something with the returned time
val tv:TextView = activity.findViewById(R.id.end) as TextView
// tv.text = "${getHourAMPM(hourOfDay)}:$minute ${getAMPM(hourOfDay)}"
tv.text = "$hourOfDay:$minute "
}
}
解决方案
您可以在创建对话框后获取按钮并更改其文本,这发生在onStart()
:
override fun onStart() {
super.onStart()
(dialog as? DatePickerDialog)
?.getButton(DialogInterface.BUTTON_NEGATIVE)
?.setText(R.string.myCancelString)
}
推荐阅读
- swift - Swift 的 Set 中索引的时代
- python - 通过映射或掩码根据字典更改熊猫数据帧值
- java - Swagger UI 抱怨 ServerHttpRequest
- python-3.x - 每次在 PyQt5 中单击按钮时都会发生不同的事件
- python - python - 我希望多个线程产生多个进程,所有进程都应该并行运行
- gitlab-ci - 在 GitLab CI 中,有没有办法在合并请求中定义管道变量?
- android - Android Studio - 如何关闭“单词'word'中的错字?
- python - Matplotlib 从 CSV 中读取时间值
- excel - 如何将计算数据(每月平均)从源工作簿传输到我的主工作簿?
- python - 在 virtualenv 中禁用系统范围 (pip) 包