Используйте findViewById в другом классе в Kotlin Android dev - PullRequest
0 голосов
/ 29 мая 2020

У меня есть код, который вызывает запуск DatePickerFragment и TimePickerFragment при нажатии кнопок в основном классе действия.

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

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

Затем я использовал это руководство из документации, чтобы инициировать этот процесс, который включает классы class DatePickerFragment : DialogFragment(), DatePickerDialog.OnDateSetListener и class 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_date TextView, чтобы отразить дату, выбранную для пользователя, то же самое относится к времени, но процессу будет точно так же. Я не знаком с тем, как работают классы, есть ли лучший способ сделать это? Фактически, я хочу передавать данные между каждым классом.

Я новичок в Kotlin dev, пожалуйста, простите меня, если это что-то действительно базовое c!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...