Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在Kotlin中使用日期选择器设置EditText的文本_Android_Kotlin_Datepicker_Android Edittext_Android Datepicker - Fatal编程技术网

Android 如何在Kotlin中使用日期选择器设置EditText的文本

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和android应用程序开发的新手

我正在学习一门在线课程,其中一个练习是选择日期,以提醒在特定时间要做的事情

我所做的是创建EditText并实现DatePicker。当用户单击日期选择器打开时,在我选择日期后,我无法设置为文本编辑文本

顺便说一句,我已经检查了其他相关问题,上面说检查您的id以确保您在正确的布局文件中引用了非空的小部件。我仔细检查了一下,这不是问题

这里是错误

尝试在空对象引用上调用虚拟方法“void android.widget.EditText.setText(java.lang.CharSequence)”

//在布局文件上编辑文本
//我的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对其进行了测试