当我在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)
}
发布于 2019-05-10 10:48:37
根本原因:您覆盖了错误的onSaveInstanceState()
方法。
更改您的代码
override fun onSaveInstanceState(outState: Bundle?, outPersistentState: PersistableBundle?) {
super.onSaveInstanceState(outState, outPersistentState)
Log.i("ToDoList","OnSaveInstanceState was called")
outState?.putStringArrayList("list", list)
}
至
override fun onSaveInstanceState(outState: Bundle?) {
super.onSaveInstanceState(outState)
Log.i("ToDoList","OnSaveInstanceState was called")
outState?.putStringArrayList("list", list)
}
https://stackoverflow.com/questions/56066660
复制相似问题