Android中生成商品的輔助屬性類似排列組合

下面來看一張圖

這種在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;
    
            }

        }


    }

 

思路如上,可以借鑑下思路。

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章