在横向模式中添加列表不会在ListView中显示,但处于纵向模式

问题描述 投票:0回答:0

在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会显示所有添加的项目,甚至是在横向模式下添加的项目。

我无法弄清楚为什么在横向模式下它不会在项目添加到列表时显示,但是当更改回纵向模式时它会显示所有添加的项目。

希望有人可以帮我搞清楚!

android listview kotlin android-listview landscape-portrait
© www.soinside.com 2019 - 2024. All rights reserved.