【问题标题】:Android ListView clears when hard BACK key is pressed按下硬 BACK 键时,Android ListView 会清除
【发布时间】:2010-04-16 21:37:40
【问题描述】:

在我的 android 应用程序中,我有一个 Tabhost,其中一个 ListView 作为选项卡之一。通过单击 ListView 中的一个项目(一个地址),我启动了一个 Intent 到谷歌地图的方向,然后弹出谷歌地图、网络浏览器等的选择对话框。问题是如果我按下硬返回按钮,那么启动对话框就会消失而且 ListView 也被清除。知道为什么吗?

【问题讨论】:

  • 这里没有足够的信息来诊断。您应该发布涉及您的 listView 和/或适配器的代码

标签: android listview


【解决方案1】:

调用者活动正在“暂停”,当恢复时调用 onCreate 让您“恢复”。您可以通过覆盖 onSaveInstanceState 并通过设置 extras 将数据传递给捆绑包来保存持久数据。然后检查传递给 onCreate 的捆绑包中的这些额外内容,并执行恢复功能所需的任何必要操作。

对于复杂的对象,您可以将它们序列化(如果需要,实现 Serializable),然后在 onSaveInstanceState 期间将它们作为附加文件存储在包中。

【讨论】:

  • 只有当设备非常需要内存时才会释放暂停的活动。即便如此,因为它仍然是部分可见的,所以它比其他活动具有更高的优先级,所以应该首先使用完全后台的应用程序。它可能只通过 onResume()
  • 只调用 onResume。在 onResume 我调用 processResults(results) 但在 processResults(results) 我调用 this.results.clear() 时 this.results 是传入的列表。只需要做一个 processResults(new ArrayList(results))在 onResume 中。
猜你喜欢
  • 1970-01-01
  • 2014-02-20
  • 2013-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-28
相关资源
最近更新 更多