在Android Studio中的Kotlin中,我有一个ListView和一个addButton,当您单击该按钮时,一个项目将添加到列表中并显示在ListView中。
我有一个onSaveInstanceState来处理方向更改,我有一个不同的横向模式布局,所以ListView有足够的空间。
我有:
var drinksToday: MutableList<String> = mutableListOf()
lateinit var adapter: ArrayAdapter<String>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
addButton.setOnClickListener {
drinksToday.add(0, "250 ml")
// Print to check addition to list
println(drinksToday.toString())
}
if (savedInstanceState != null) {
savedInstanceState.run {
val list = getStringArray(EXTRA_LIST)
if (list != null) {
drinksToday = list.toMutableList<String>()
}
}
}
adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, drinksToday)
drinksTodayList.adapter = adapter
}
override fun onSaveInstanceState(outState: Bundle?) {
super.onSaveInstanceState(outState)
outState?.run {
putStringArray(EXTRA_LIST, drinksToday.toTypedArray())
}
}
这在纵向模式下工作正常,但在横向模式下不能正常工作。
在纵向模式下,当我单击addButton时,项目将添加到列表中并显示在ListView中。
在横向模式下,该项目将添加到列表中,但不会显示在ListView中。 但当我回到纵向模式时,ListView会显示所有添加的项目,甚至是在横向模式下添加的项目。
我无法弄清楚为什么在横向模式下它不会在项目添加到列表时显示,但是当更改回纵向模式时它会显示所有添加的项目。
希望有人可以帮我搞清楚!