克隆新对象以传递给ArrayList?

问题描述 投票:0回答: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();
java android events
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));

2
投票

让你的

Item
实施
Clonable
然后

public void onClick(View v) {
        alItems.add(myItem.clone());
        arrayAdapter.notifyDataSetChanged();
© www.soinside.com 2019 - 2024. All rights reserved.