1

カスタム ArrayAdapter を使用した ListActivity の ListView に問題があります。

ListActivity が非表示 (一時停止など) になると、ArrayAdpater に存在していたデータが消えたように見えます。回転は正常に機能しますが、onCreate() の ArrayAdapter に配列を割り当てるだけで、他にはありません。配列はグローバルな静的に格納されるため、配列自体は問題ありません。しかし、ListView は、アクティビティ ライフサイクルの onCreate の後のどこかで配列をピッチングしているようです。

onResume()、onStart()、またはonRestart()のいずれかで配列を再割り当てする必要があると考えていますが、これはめったに発生せず、カーソルベースのアダプターでは決して発生しないため、より具体的な理由を探しています。

4

1 に答える 1

1

あなたの問題は少し漠然としていますが、考慮すべきヒントをいくつか紹介します。

onCreate メソッド内にデータを入力しないでください。ビューの定義には onCreate() を使用する必要があります。onResume() を使用してデータをロードすると、onPause() で効果的にメモリをクリーンアップして節約できます。

カスタム ArrayAdapter が getView を適切に処理していることを確認してください。これは他の問題の原因になる可能性があります。

于 2010-10-12T21:29:22.817 に答える