我正在构建一个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();
答案 0 :(得分:3)
您可以在Item
课程中创建copy constructor
,并使用它来创建对象的副本。
public class Item {
private int field1;
public Item() { }
public Item(Item item) {
this.field1 = item.field1;
}
}
使用以下方法将对象添加到列表: -
alItems.add(new Item(myItem));
答案 1 :(得分:2)
制作Item
工具Clonable
然后
public void onClick(View v) {
alItems.add(myItem.clone());
arrayAdapter.notifyDataSetChanged();