1

我有一个使用自定义 ArrayAdapter 填充的 ListView。每行都包含从互联网下载的图像和一些文本。

问题是改变设备的方向会重置一切。ListView 是空的,它再次开始下载文本和图像!

我怎样才能避免这种情况?

4

2 回答 2

2

问题的根源在于,当方向改变时,Android 会重新创建活动。您可以通过覆盖onSaveInstanceState()onRestoreInstanceState()来保存/恢复活动的状态。保存您认为对您的活动很重要的内容,以便在方向更改后看起来相同。

另一个选项是通过将以下内容添加到您的活动中的 Android XML 来禁用活动的重新创建:

android:configChanges="orientation|keyboardHidden"

如果您正在使用AsyncTask下载位图,此选项也将为您提供帮助。如果每次都重新创建活动,则必须停止下载任务并重新启动它。

于 2012-09-17T16:57:59.897 回答
1

您需要通过覆盖onSaveInstanceState和 onRestoreInstanceState 自己处理配置更改。您还可以通过添加使 android 不重新启动您的活动

 android:configChanges="orientation|keyboardHidden" 

在你的清单中。

此外,您可能需要通过http://developer.android.com/training/displaying-bitmaps/display-bitmap.html了解有关在 android 中使用位图的重要提示。

于 2012-09-17T17:09:01.283 回答