首页 > 解决方案 > 在 Kotlin Android dev 的其他类中使用 findViewById

问题描述

我有代码要求启动 aDatePickerFragment以及TimePickerFragment在活动的主类中按下按钮时。

 fun showDatePickerDialog(view: View) {
        val newFragment = DatePickerFragment()
        newFragment.show(supportFragmentManager, "datePicker")
    }

    fun showTimePickerDialog(view: View) {
        TimePickerFragment().show(supportFragmentManager, "timePicker")
    }

接下来,我使用文档中的这个指南来启动这个过程——这涉及到类class DatePickerFragment : DialogFragment(), DatePickerDialog.OnDateSetListenerclass TimePickerFragment : DialogFragment(), TimePickerDialog.OnTimeSetListener. 这就是我的问题出现的地方。这就是我想要做的:

class DatePickerFragment : DialogFragment(), DatePickerDialog.OnDateSetListener {

    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
        // Use the current date as the default date in the picker
        val c = Calendar.getInstance()
        val year = c.get(Calendar.YEAR)
        val month = c.get(Calendar.MONTH)
        val day = c.get(Calendar.DAY_OF_MONTH)

        // Create a new instance of DatePickerDialog and return it
        return DatePickerDialog(activity, this, year, month, day)
    }

    override fun onDateSet(view: DatePicker, year: Int, month: Int, day: Int) {
        // Do something with the date chosen by the user
        var dateText = findViewbyId<textview>(R.id.text_newRem_date)
        dateText.text("$day/$month/$year")
    }
}

简单地说,我想编辑text_newRem_dateTextView 中的文本以反映为用户选择的日期,这同样适用于时间,但过程完全相同。我不熟悉课程的工作方式,那么有没有更好的方法来做到这一点?实际上,我希望在每个类之间传递数据。

我是 Kotlin 开发的新手,如果这是非常基本的东西,请原谅我!

标签: androidkotlin

解决方案


推荐阅读