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 constructor在您的Item类中创建一个,并使用它来创建您的对象的副本。

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 回答