Добавление к списку в альбомном режиме не отображается в ListView, но в портретном режиме - PullRequest
0 голосов
/ 06 мая 2019

В Kotlin в Android Studio у меня есть 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 отображает все добавленные элементы, даже те, которые были добавлены в ландшафтном режиме.

Я не могу понять, почему в альбомном режиме он не будет отображаться при добавлении элемента в список, но при переходе обратно в портретный режим он показывает все добавленные элементы.

Надеюсь, кто-нибудь поможет мне разобраться!

...