android-sku
android-sku copied to clipboard
在碰到attributes里属性排序不一样的情况下怎么解决,例如第一组key::颜色 --大小--体积 第二组 key:大小---体积---颜色
在碰到attributes里属性排序不一样的情况下怎么解决,例如第一组key::颜色 --大小--体积 第二组 key:大小---体积---颜色
这种情况,可以让后端开发对数据进行排序,也可以客户端对attributes进行排序,实现Comparable接口,针对key进行比较,比如颜色,大小,这样就是一致顺序了
那么如果出现key个数不一致情况呢 比如第一组:颜色--体积--重量;第二组:颜色--体积;第三组:颜色--重量
没出现你说的这种情况,正常来说,一个商品下的多种sku,应该会具有所有的属性吧
就比如一件衣服,有颜色和尺码两个属性,标准的sku肯定是包含两个属性的,如果出现你说的那种情况,看看是不是接口吐的数据不标准
好的,谢谢了,前天看的https://github.com/DesignPCode/Sku,繁琐有bug不说,选完没法得到所选组合,浪费了很多时间。
/** * 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; }
你好,非常感谢分享.想问下:如何在进入时设置默认的选择项呢
我更新一下,增加一个方法,来设置默认选中状态,可以的话,帮忙加颗星吧
@mengbixiusi ,方法添加了,见README
ok,非常感谢,