【发布时间】:2020-11-17 22:18:46
【问题描述】:
我正在尝试开发一个将 excel 文件 (.xlsx) 读取到 ListView 的应用程序,我注意到每次旋转更改或更改为夜间模式(或相反)时列表视图重置并再次开始加载文件,
我知道它与生命周期方法(onCreate、onDestroy...)有某种关系,并且有一个选项可以使用 sheredPrefences 保存值,但我无法保存 arrayAdapter或 arrayList 到 sheredPrefences 那么我应该怎么做才能解决这个问题?
(对不起我的英语......)
【问题讨论】:
-
我建议使用 MVP 或 MVVM 之类的模式将 UI 与数据分离。它将解决您的问题,因为您可以重用列表,将其传递给在配置更改时 Activity 被销毁后重新创建的新适配器。顺便说一句,比起 ListView,更喜欢 RecyclerView。 ListView 是一种现在非常古老的显示列表的方式。请,请,请不要将大量数据存储到 SharedPreferences 中,它们不是为此而生的。尤其是当您从本地 Excel 文件中读取数据时已经存储了数据。
标签: android listview apache-poi