如何在使用 kotlin 的活动反压后刷新片段



在我使用 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 
}

我希望这对你有帮助.

最新更新