1

カスタム ArrayAdapter が取り込まれた ListView があります。各行には、インターネットからダウンロードされた画像とテキストが含まれています。

問題は、デバイスの向きを変えるとすべてがリセットされることです。ListView が空になり、テキストと画像のダウンロードが再び開始されます。

どうすればこれを回避できますか?

4

2 に答える 2

2

問題の根本は、向きが変わったときに Android がアクティビティを再作成することです。onSaveInstanceState()onRestoreInstanceState( )をオーバーライドすることで、アクティビティの状態を保存/復元できます。方向の変更後も同じように見えるように、アクティビティに関して重要と思われるものを保存します。

もう 1 つのオプションは、アクティビティの Android XML に以下を追加して、アクティビティの再作成を無効にすることです。

android:configChanges="orientation|keyboardHidden"

AsyncTaskこのオプションは、ビットマップのダウンロードに使用している場合にも役立ちます。アクティビティが毎回再作成される場合は、ダウンロード タスクを停止して再起動する必要があります。

于 2012-09-17T16:57:59.897 に答える
1

onSaveInstanceStateとonRestoreInstanceStateをオーバーライドして、構成の変更を自分で処理する必要があります。追加することで、Androidがアクティビティを再開しないようにすることもできます

 android:configChanges="orientation|keyboardHidden" 

マニフェストで。

また、Androidでビットマップを使用する際の重要なヒントについては、 http://developer.android.com/training/displaying-bitmaps/display-bitmap.htmlを参照してください。

于 2012-09-17T17:09:01.283 に答える