繁体   English   中英

onSaveInstance outState 用最后一个 putString 保存所有 state

[英]onSaveInstance outState saving all state with last putString

我正在使用 Activity 我正在使用onSaveInstanceState生命周期

当我尝试更新时

companion object {
    const val EXTRA_INDEX = "extra_index"
    private const val STATE_COMMENT_NAME = ""
    private const val STATE_COMMENT_COMMENT = ""
}

在 GalleryDetail class with

outState.putString(STATE_COMMENT_NAME, tvCommentName.text.toString())
outState.putString(STATE_COMMENT_COMMENT, tvCommentComment.text.toString())

onSaveInstanceState生命周期内, STATE_COMMENT_NAMEtvCommentComment.text.toString().trim()填充

即使我改变了订单,例如

outState.putString(STATE_COMMENT_COMMENT, tvCommentName.text.toString().trim())
outState.putString(STATE_COMMENT_NAME, tvCommentComment.text.toString().trim())

反之亦然, STATE_COMMENT_COMMENT将由tvCommentName.text.toString().trim()填充,因此,关键是,最后一个 putString 之上的所有内容,都将由 putString 的最后一个值填充

我已经记录了问题,它告诉我问题出在onSaveInstanceState而不是onCreate或错误类型变量以显示在 UI 上

所以,这是我的代码日志

2022-08-09 08:14:57.384 27561-27561/com.dicoding.kelassekolah D/GalleryDetail Bundle: onSaveInstanceState Nice photos!
2022-08-09 08:14:57.384 27561-27561/com.dicoding.kelassekolah D/GalleryDetail Bundle: onSaveInstanceState Nice photos!
2022-08-09 08:14:57.519 27561-27561/com.dicoding.kelassekolah D/GalleryDetail Bundle: savedInstanceState Nice photos!
2022-08-09 08:14:57.519 27561-27561/com.dicoding.kelassekolah D/GalleryDetail Bundle: savedInstanceState Nice photos!

onSaveInstanceState要点: https://gist.github.com/amirudev/421d76f671250e015462fa973bb984be

onCreate if savedInstanceState not null要点: https://gist.github.com/amirudev/137d1d74f729de

您应该将这些STATE_COMMENT_NAMESTATE_COMMENT_COMMENT值彼此不相同:

companion object {
    const val EXTRA_INDEX = "extra_index"
    private const val STATE_COMMENT_NAME = "stateCommentName"
    private const val STATE_COMMENT_COMMENT = "stateCommentComment"
}

如果它们相同(例如"" ),则它们是相同的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM