[英]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.