【发布时间】:2016-02-25 14:32:30
【问题描述】:
我正在使用ArrayList<HashMap<String, String>> 来存储我的购物车物品。每次将商品添加到购物车时,都会将商品详细信息设置为ArrayList,然后调用setCart() 方法。
我想如果ArrayList 中的项目已经存在,那么通过调用setCart() 它不会覆盖以前的购物车项目。而是将ArrayList 附加到已经存在的ArrayList 的末尾。我使用了 ArrayList.add() 方法,但它仅适用于 HashMap<String,String> 不适用于 ArrayList<HashMap<String, String>>
public class AddtoCart extends Application {
ArrayList<HashMap<String, String>> cart;
public void setCart(ArrayList<HashMap<String, String>> data) {
cart = data;
}
public ArrayList<HashMap<String, String>> getCart() {
return cart;
}
public int getSize() {
return cart.size();
}
}
在AddtoCart 中设置ArrayList 的addtocart 按钮上调用的方法
private OnClickListener Cart = new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
cart = new ArrayList<HashMap<String, String>>();
HashMap<String, String> map = new HashMap<String, String>();
map.put(TAG_PID, pid);
map.put(TAG_NAME, name);
map.put(TAG_CATEGORY, category);
map.put(TAG_PRICE, price);
map.put(TAG_IMAGE,String.valueOf(resId));
cart.add(map);
AddtoCart obj = (AddtoCart) getApplicationContext();
obj.setCart(cart);
Intent a = new Intent("com.example.pb.VIEWCART");
startActivity(a);
}
};
}
【问题讨论】:
-
查一下
ArrayList.addAll -
当你想更新一个数组列表时,你可以使用 .set 并给出你想更新的索引和新的对象
标签: java android arraylist hashmap