我有一个使用自定义ArrayAdapter填充的ListView。每行都包含一张图片和一些从互联网上下载的文字。
问题是更改设备的方向会重置所有内容。 ListView为空,它再次开始下载文本和图像!
我该如何避免这种情况?
答案 0 :(得分:2)
问题的根源是Android在方向更改时重新创建活动。您可以通过覆盖onSaveInstanceState()和onRestoreInstanceState()来保存/恢复活动状态。保存您认为对您的活动很重要的内容,以便在方向更改后看起来相同。
另一个选项是通过在您的活动中将以下内容添加到Android XML来禁用重新创建活动:
android:configChanges="orientation|keyboardHidden"
如果您使用AsyncTask
下载位图,此选项也可以帮助您。如果每次都重新创建活动,则必须停止下载任务并重新启动它。
答案 1 :(得分:1)
您需要通过覆盖onSaveInstanceState和onRestoreInstanceState来自行处理配置更改。 您还可以通过添加
使Android不重新启动您的活动 android:configChanges="orientation|keyboardHidden"
在你的清单中。
此外,您可能需要浏览http://developer.android.com/training/displaying-bitmaps/display-bitmap.html以获取有关在Android中使用位图的重要提示。