2

私はAndroidアプリを構築していて、オブジェクトをに追加しようとしていましたArrayList。これでオブジェクトのコピーが作成され、オブジェクトをArrayList再利用できると思いました。ArryListこれは事実ではなく、実際には元のオブジェクトを参照していることに気づきました。

ループを使用して関数内に新しいオブジェクトを作成する方法がよくわからないonCreateので、どういうわけかオブジェクトのクローンを作成してオブジェクトに渡す必要がありArrayListますか?

とにかくここに私のコードがあります:

 public class Main extends Activity {
  private Item myItem = new Item();

  btnSave.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            alItems.add(myItem);
            arrayAdapter.notifyDataSetChanged();
4

2 に答える 2

3

クラスにを作成copy constructorItem、それを使用してオブジェクトのコピーを作成できます。

public class Item {
    private int field1;
    public Item() { }

    public Item(Item item) {
       this.field1 = item.field1;
    }
}

そして、次を使用してオブジェクトをリストに追加します。-

alItems.add(new Item(myItem));
于 2012-11-05T21:13:45.690 に答える
2

その後、Item実装を作成しますClonable

public void onClick(View v) {
        alItems.add(myItem.clone());
        arrayAdapter.notifyDataSetChanged();
于 2012-11-05T21:17:14.937 に答える