我正在构建一个 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();
您可以在 copy constructor
类中创建一个
Item
,并使用它来创建对象的副本。
public class Item {
private int field1;
public Item() { }
public Item(Item item) {
this.field1 = item.field1;
}
}
并使用以下方法将您的对象添加到列表中:-
alItems.add(new Item(myItem));
让你的
Item
实施Clonable
然后
public void onClick(View v) {
alItems.add(myItem.clone());
arrayAdapter.notifyDataSetChanged();