android-sku icon indicating copy to clipboard operation
android-sku copied to clipboard

在碰到attributes里属性排序不一样的情况下怎么解决,例如第一组key::颜色 --大小--体积 第二组 key:大小---体积---颜色

Open Mettre opened this issue 7 years ago • 10 comments

在碰到attributes里属性排序不一样的情况下怎么解决,例如第一组key::颜色 --大小--体积 第二组 key:大小---体积---颜色

Mettre avatar Sep 07 '17 04:09 Mettre

这种情况,可以让后端开发对数据进行排序,也可以客户端对attributes进行排序,实现Comparable接口,针对key进行比较,比如颜色,大小,这样就是一致顺序了

wuhenzhizao avatar Sep 07 '17 05:09 wuhenzhizao

那么如果出现key个数不一致情况呢 比如第一组:颜色--体积--重量;第二组:颜色--体积;第三组:颜色--重量

Mettre avatar Sep 07 '17 05:09 Mettre

没出现你说的这种情况,正常来说,一个商品下的多种sku,应该会具有所有的属性吧

wuhenzhizao avatar Sep 07 '17 05:09 wuhenzhizao

就比如一件衣服,有颜色和尺码两个属性,标准的sku肯定是包含两个属性的,如果出现你说的那种情况,看看是不是接口吐的数据不标准

wuhenzhizao avatar Sep 07 '17 06:09 wuhenzhizao

好的,谢谢了,前天看的https://github.com/DesignPCode/Sku,繁琐有bug不说,选完没法得到所选组合,浪费了很多时间。

Mettre avatar Sep 07 '17 06:09 Mettre

/** * sku需要的列表排序 */ private ProductDetailResponse2 Sort(ProductDetailResponse2 productDetail) {

    if (productDetail.getProductSkus() == null || productDetail.getProductSkus().size() == 0) {
        return productDetail;
    }
    List<String> listName = new ArrayList<>();//第一组key 列表
    for (SkuAttribute sku : productDetail.getProductSkus().get(0).getAttributes()) {
        listName.add(sku.getKey());
    }

    for (int i = 0; i < productDetail.getProductSkus().size(); i++) {
        List<SkuAttribute> attributes = new ArrayList<>();//key列表

        for (String key : listName) {
            for (SkuAttribute s : productDetail.getProductSkus().get(i).getAttributes()) {
                if (key.equals(s.getKey())) {
                    attributes.add(s);
                }
            }
        }
        productDetail.getProductSkus().get(i).setAttributes(attributes);
    }

// Log.v("---顺序后", "" + new Gson().toJson(productDetail)); return productDetail; }

Mettre avatar Sep 07 '17 06:09 Mettre

你好,非常感谢分享.想问下:如何在进入时设置默认的选择项呢

mengbixiusi avatar Dec 13 '17 05:12 mengbixiusi

我更新一下,增加一个方法,来设置默认选中状态,可以的话,帮忙加颗星吧

wuhenzhizao avatar Dec 13 '17 06:12 wuhenzhizao

@mengbixiusi ,方法添加了,见README

wuhenzhizao avatar Dec 13 '17 06:12 wuhenzhizao

ok,非常感谢,

mengbixiusi avatar Dec 13 '17 06:12 mengbixiusi