onSaveInstanceState всегда null
При переключении активити данные не сохраняются
MainActivity
binding.imageButton2.setOnClickListener { val image_intent = Intent(this, ImageActivity::class.java)
startActivity(image_intent)}
ImageActivity
var prompt: String? = "qq"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Log.d("AAAAA", "onCreate")
setContentView(R.layout.activity_image)
binding1 = ActivityImageBinding.inflate(layoutInflater)
setContentView(binding1.root)
if (savedInstanceState != null) {
binding1.textView.text = savedInstanceState.getString("key")
}
else
println("save = null")
binding1.imageButton.setOnClickListener { val main_intent = Intent(this, MainActivity::class.java)
startActivity(main_intent) }
}
override fun onSaveInstanceState(outState: Bundle) {
binding1.generate.setOnClickListener {
outState.putString("key", prompt)}
Log.d("AAAAA", "onSave = $prompt")
super.onSaveInstanceState(outState)}
override fun onResume() {
super.onResume()
Log.d("AAAAA", "onResume")
binding1.generate.setOnClickListener {
prompt = binding1.textView.text.toString() + 1
binding1.textView.text = prompt.toString()
}
Log
D/AAAAA: onCreate ------открыл 2е активити, несколько раз нажал кнопку
I/System.out: save = null
D/AAAAA: onResume
D/AAAAA: onSave = TextView111111 ------перешел в 1е активити
D/AAAAA: onStop
D/AAAAA: onCreate
I/System.out: save = null -----вернулся во 2е активити, TextView не сохранилась
D/AAAAA: onResume
Что сделать чтоб значения сохаранялись при переходе в другое активити и обратно?
Источник: Stack Overflow на русском