В моем приложении android с Kotlin у меня есть интерфейс для учетной записи пользователя, который отображает всю его личную информацию, такую как FullName, Email, Address ..., а также содержит кнопку для обновления пользователя. Учетная запись является фрагментом, и когда я нажимаю кнопку обновления I go для действия UpdateProfile. После обновления профиля пользователя, когда я нажимаю кнопку BackPressed для возврата к фрагменту учетной записи, фрагмент учетной записи не обновляется и новая информация не отображается.
Итак, как обновить sh Фрагмент учетной записи после повторного нажатия от действия?
Я создаю функцию refreshate () в AccountFragment следующим образом:
fun recreate() {
val ft: FragmentTransaction = this.fragmentManager!!.beginTransaction()
ft.detach(this)
ft.attach(this)
ft.commit()
}
и сопутствующий объект:
companion object {
lateinit var fragment: AccountFragment
fun newInstance(): AccountFragment {
fragment = AccountFragment()
return fragment
}
}
А, В активности updateProfile я добавляю в кнопку back button вызов для воссоздания функции:
private var myFragment: AccountFragment = AccountFragment.newInstance()
override fun onBackPressed() {
super.onBackPressed()
myFragment.recreate()
finish()
}
И я получаю следующую ошибку:
kotlin.KotlinNullPointerException
at com.app.fragment.AccountFragment.recreate(AccountFragment.kt:161)
at com.app.activity.user.profile.update.UpdateProfile.onBackPressed(UpdateProfile.kt:96)
at com.app.activity.user.profile.update.UpdateProfile$onCreate$1.onClick(UpdateProfile.kt:46)
I хотел бы знать, если мой метод правильный, если да, как я могу исправить эту ошибку?