У меня есть фрагмент приложения Android Kotlin с тремя элементами в макете ресурса:
<EditText android:id="@+id/forename_input_account"/>
<EditText android:id="@+id/surname_input_account"/>
<Button android:id="@+id/saveButton"/>
При нажатии кнопки «Сохранить» мне требуется, чтобы содержимое двух полей EditText было записано в проект Firebase Realtime DB.
В файле фрагмента аккаунта у меня есть следующее:
class AccountFragment : Fragment() {
lateinit var forename_input_account: EditText
lateinit var surname_input_account: EditText
lateinit var saveButton: Button
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
forename_input_account = forename_input_account
surname_input_account = surname_input_account
saveButton = saveButton
saveButton.setOnClickListener {
saveAccount()
}
}
private fun saveAccount(){
val firstname = forename_input_account.text.toString().trim()
val lastname = lastname_input_account.text.toString().trim()
val ref = FirebaseDatabase.getInstance().getReference("mySaveLocation")
val saveId = ref.push().key
val myRecord = save(saveId, firstname, lastname)
ref.child(saveId.toString()).setValue(myRecord).addOnCompleteListener{
}
}
}
имя и фамилия объявляются в отдельном файле следующим образом:
class Hero(val id: String?, val firstname: String, val lastname: String)
Когда я запускаю приложение и перехожу к фрагменту, приложение вылетает со следующей ошибкой:
kotlin.UninitializedPropertyAccessException: свойство lateinit forename_input_account не было инициализировано