下面來看一張圖
這種在app端錄入商品的時候,會去添加一些商品的輔助規格 ,例如一件衣服的尺碼顏色,比如尺碼有 S ,M, L, XL ,顏色有 紅色,藍色,白色,紫色,那麼就有 4X4 也就是16中組合方式,根據需要自行選擇,我們就要實現這種效果,先看下效果的視頻圖
這裏主要介紹生成的數據思路:
1.點擊後把屬性默認的布爾值chose設置爲 chose=!chose;這裏舉例屬性值有一個 屬性id 屬性名稱,給一個默認的選中值,默認不選中。
public class AttrBean{
public String id;
public String name;
public boolean chose=false;
}
2.每次點擊後都要去重新生成列表。定義一個集合來接你所選擇然後生成的數據,比如我只需要生成一個 屬性名稱 和一個價格
這裏自定義一個類
public class GoodsBean{
public String name;
public String price;
public GoodsBean(String name,String price){
this.name=name;
this.price=price;
}
}
用一個集合來接它 ArrayList<GoodsBean> zum=new ArrayList<>(); 注意:記得每次點擊屬性的時候 往集合裏賦值前要把之前的的值清空。
public void setGoodsAttar() {
//選了商品的屬性值
zum.clear();
for (AttrBean item : chose) {//一個屬性 對應多個值 chose是所有的屬性集合
getAttarData(item.subinfo);
}
//篩選完了 todo:這裏是你接下來的操作 不做過多介紹 你或者把zun賦給一個列表或是怎樣
}
public void getAttarData(ArrayList<AttrBean> item) {
if (zum.size() == 0) {
for (AttrBean t : item) {
if (t.chose) {
GoodsBean goodsBean = new GoodsBean(t.name, "");
zum.add(goodsBean);
}
}
} else {
ArrayList<GoodsBean> savato = new ArrayList<>();
for (AttarInfoBean t : zum) {
for (AttrBean y : item) {
if (y.chose) {
String name = t.name + "_" + y.name;
AttarInfoBean goodsBean = new AttarInfoBean(name, "");
savato.add(goodsBean);
}
}
}
if(savato.size()>0) {
zum=savato;
}
}
}
思路如上,可以借鑑下思路。