Android 如何在Kotlin中使用日期选择器设置EditText的文本
我是Kotlin和android应用程序开发的新手 我正在学习一门在线课程,其中一个练习是选择日期,以提醒在特定时间要做的事情 我所做的是创建EditText并实现DatePicker。当用户单击日期选择器打开时,在我选择日期后,我无法设置为文本编辑文本 顺便说一句,我已经检查了其他相关问题,上面说检查您的id以确保您在正确的布局文件中引用了非空的小部件。我仔细检查了一下,这不是问题 这里是错误 尝试在空对象引用上调用虚拟方法“void android.widget.EditText.setText(java.lang.CharSequence)”Android 如何在Kotlin中使用日期选择器设置EditText的文本,android,kotlin,datepicker,android-edittext,android-datepicker,Android,Kotlin,Datepicker,Android Edittext,Android Datepicker,我是Kotlin和android应用程序开发的新手 我正在学习一门在线课程,其中一个练习是选择日期,以提醒在特定时间要做的事情 我所做的是创建EditText并实现DatePicker。当用户单击日期选择器打开时,在我选择日期后,我无法设置为文本编辑文本 顺便说一句,我已经检查了其他相关问题,上面说检查您的id以确保您在正确的布局文件中引用了非空的小部件。我仔细检查了一下,这不是问题 这里是错误 尝试在空对象引用上调用虚拟方法“void android.widget.EditText.setTe
//在布局文件上编辑文本
//我的Kotlin代码
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity\u添加)
//DatePicker在onCreate函数内调用
calendarEditText.setOnClickListener{
val newFragment=DatePickerFragment()
显示(supportFragmentManager,“日期选择器”)
}
}
//DatePickerFragment的日期集部分
覆盖日期集(视图:日期选择器,年:整数,月:整数,月:整数){
//所选日期转换为一个字符串
val date=“$year/$month/$dayOfMonth”
//这就是我出错的地方
calendarEditText.setText(日期)
}
对于我来说,calendarEditText为null,因为您在DatePickerFragment中调用它,所以您处于不同的上下文中
在onDataSet中,按如下方式更新edittext:
((MyActivity) activity).setEdt(date);
在你的活动中,类似于:
public setEdt(date: String): void {
calendarEditText.setText(date)
}
或者遵循此操作以避免片段对于我来说calendarEditText为空,因为您在DatePickerFragment中调用它,所以您处于不同的上下文中 在onDataSet中,按如下方式更新edittext:
((MyActivity) activity).setEdt(date);
在你的活动中,类似于:
public setEdt(date: String): void {
calendarEditText.setText(date)
}
或者遵循此操作以避免碎片尝试使用
findViewById()
。感谢您的建议,但在Kotlin中,您不需要findViewById(),在前面的几行中已经通过直接调用IDTry来使用findViewById()
进行了测试。感谢您的建议,但在Kotlin中,您不需要findViewById()在前面的几行中已经通过直接调用ID对其进行了测试