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
You should put these
STATE_COMMENT_NAMEandSTATE_COMMENT_COMMENTvalues not identical to each other:If they are the same (ex.
""), they are identical.