[英]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_NAME
由tvCommentComment.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_NAME
和STATE_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.