在我使用 Kotlin 的 android 应用程序中,我有一个用户帐户界面,显示他的所有个人信息,例如全名、电子邮件、地址...... 并且还包含一个用于更新用户的按钮。 帐户是一个片段,当我单击更新按钮时,我会转到更新配置文件活动。 更新用户配置文件后,当我单击"后按按钮返回帐户片段"时,帐户片段没有引用,并且没有显示新信息。
那么,如何从活动中反向按下后刷新帐户片段?
我在帐户片段中创建 recreate(( 函数,如下所示:
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活动中,我在后按按钮中添加了一个调用以重新创建功能:
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)
我想知道,如果我的方法是正确的,如果是,我该如何纠正此错误?
我认为您可以在活动中添加finish()
override fun onBackPressed() {
super.onBackPressed()
finish()
}
然后在片段中添加刷新onResume()
override fun onResume() {
super.onResume()
// refresh here
}
我希望这对你有帮助.