I was working with Activity I am using onSaveInstanceState lifecycle
when I tried to updating
companion object {
const val EXTRA_INDEX = "extra_index"
private const val STATE_COMMENT_NAME = ""
private const val STATE_COMMENT_COMMENT = ""
}
on GalleryDetail class with
outState.putString(STATE_COMMENT_NAME, tvCommentName.text.toString())
outState.putString(STATE_COMMENT_COMMENT, tvCommentComment.text.toString())
within onSaveInstanceState lifecycle, STATE_COMMENT_NAME was filled by tvCommentComment.text.toString().trim()
even when I changed the order, for example
outState.putString(STATE_COMMENT_COMMENT, tvCommentName.text.toString().trim())
outState.putString(STATE_COMMENT_NAME, tvCommentComment.text.toString().trim())
vice versa, STATE_COMMENT_COMMENT will be filled by tvCommentName.text.toString().trim()
so, the point is, everything on top of the last putString, it'll be filled by last value of putString
I have do Log the problem, and it show me that the problem is on onSaveInstanceState and not on the onCreate nor mistype variable to show on UI
so, this is the Log of my code
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 Gist: https://gist.github.com/amirudev/421d76f671250e015462fa973bb984be
onCreate if savedInstanceState not null Gist: https://gist.github.com/amirudev/17d1d74f829de16bf63f672316e3beb6
CodePudding user response:
You should put these STATE_COMMENT_NAME and STATE_COMMENT_COMMENT values not identical to each other:
companion object {
const val EXTRA_INDEX = "extra_index"
private const val STATE_COMMENT_NAME = "stateCommentName"
private const val STATE_COMMENT_COMMENT = "stateCommentComment"
}
If they are the same (ex. ""), they are identical.
