0

2 つのアクティビティ (ActivityA と ActivityB) があります。ActivityA では、Game game = new Game(); 内に ArrayList を持つ新しいオブジェクト ゲームを作成しています。

ActivityB を開始します

public void startActivityB(View view){

    Intent i = new Intent(this,ActivityB.class);
    i.putExtra("Game", game);
    startActivity(i);

}

アクティビティ BI では、オブジェクトを取得し、それらの ArrayList にアクセスして、いくつかの要素を削除します。(削除の前後にArrayListを確認し、正常に削除されました)問題は、ActivityBを終了して再度開始すると、削除された要素がまだArrayListにあることです。

4

2 に答える 2

2

これは、複製されたオブジェクトの 2 つの異なるインスタンスを編集しているためです。アクティビティ A で静的にし、アクティビティ B で直接アクセスすることを検討してください。

また

アプリの MVC 構造を検討してください。アクティビティ間で大量のデータの複数のバージョンを渡すべきではありません。データにアクセスして変更する方法を標準化します。

于 2013-05-24T19:29:45.810 に答える
2

でアクティビティ B を開始しstartActivityForResult、変更された ArrayList を ActiviyA に戻す必要があります。onActivityResult

于 2013-05-24T19:28:30.597 に答える