Java OnRestoreInstanceState在旋转后返回null

Java OnRestoreInstanceState在旋转后返回null,java,android,android-activity,kotlin,Java,Android,Android Activity,Kotlin,当我在listView中键入某个内容,然后进行旋转时,listView将返回null,而不是我键入的文本。你能解释一下为什么会这样吗 override fun onRestoreInstanceState(savedInstanceState: Bundle?) { super.onRestoreInstanceState(savedInstanceState) Log.i("ToDoList","OnRestoreInstanceState was called

当我在listView中键入某个内容,然后进行旋转时,listView将返回null,而不是我键入的文本。你能解释一下为什么会这样吗

override fun onRestoreInstanceState(savedInstanceState: Bundle?) {
        super.onRestoreInstanceState(savedInstanceState)
        Log.i("ToDoList","OnRestoreInstanceState was called")

        val listSave = savedInstanceState?.getStringArrayList("list")
        this.list.clear()
        this.list.add(listSave.toString())

        adapter = ArrayAdapter <String> (this, android.R.layout.simple_list_item_1,list)
        toDoList.adapter = adapter
    }
override fun onSaveInstanceState(outState: Bundle?, outPersistentState: PersistableBundle?) {
        super.onSaveInstanceState(outState, outPersistentState)
        Log.i("ToDoList","OnSaveInstanceState was called")
        outState?.putStringArrayList("list", list)
    }
覆盖恢复安装状态(savedInstanceState:Bundle?){
super.onRestoreInstanceState(savedInstanceState)
Log.i(“ToDoList”,“调用OnRestoreInstanceState”)
val listSave=savedInstanceState?.getStringArrayList(“列表”)
this.list.clear()
this.list.add(listSave.toString())
adapter=ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,list)
toDoList.adapter=适配器
}
覆盖SaveInstanceState(超出状态:Bundle?,OutpersistInstantState:PersistableBundle?){
super.onSaveInstanceState(outState、outPersistentState)
Log.i(“ToDoList”,“调用OnSaveInstanceState”)
超出状态?.putStringArrayList(“列表”,列表)
}

根本原因:您重写了错误的
onSaveInstanceState()
方法

解决方案:您必须覆盖而不是

从更改代码

override fun onSaveInstanceState(outState: Bundle?, outPersistentState: PersistableBundle?) {
    super.onSaveInstanceState(outState, outPersistentState)
    Log.i("ToDoList","OnSaveInstanceState was called")
    outState?.putStringArrayList("list", list)
}


根本原因:您重写了错误的
onSaveInstanceState()
方法

解决方案:您必须覆盖而不是

从更改代码

override fun onSaveInstanceState(outState: Bundle?, outPersistentState: PersistableBundle?) {
    super.onSaveInstanceState(outState, outPersistentState)
    Log.i("ToDoList","OnSaveInstanceState was called")
    outState?.putStringArrayList("list", list)
}


看看这个问题:。我猜,您的状态没有保存,因为该方法没有被操作系统调用。我并没有检查过这个问题:。我猜,您的状态没有保存,因为操作系统没有调用该方法。我并没有检查