如何在Kotlin中使用RecyclerView按shop_id对商品推车进行分组

时间:2019-04-04 16:48:32

标签: android kotlin android-recyclerview

好的,我在购物车活动中有列表项(使用RecyclerView)。我的目的是根据 shop_id 分开商品,以便当有一个具有相同shop_id的商品时,用户可以处理一次付款。我已经在Google上搜索过,并且已经阅读了使用getItemViewType的解决方案,但是我不知道,因为就我而言,shop_id是动态的。

这是插图:

item A
item F
(here button process item A and F)

item D
(here button process item D)

item B
item E
item C
(here button process item B,E and C)

请帮助我,谢谢!

1 个答案:

答案 0 :(得分:1)

我有个例子给你。

    data class CartItem(
            var shopId : Int,
            var itemName : String
    )

    val list = listOf(CartItem(1,"Onion"),
            CartItem(1,"Potato"),
            CartItem(2,"Banana"),
            CartItem(2,"Apple"))

    val listOfDifferentShopIds = mutableListOf<List<CartItem>>()

    val getUniqueShopIds = list.distinctBy { it.shopId }.map { it.shopId }

    getUniqueShopIds.forEach{ uniqueShopID->
        listOfDifferentShopIds.add(list.filter{ uniqueShopID == it.shopId })
    }

    print(listOfDifferentShopIds)

结果

[[CartItem(shopId=1, itemName=Onion), CartItem(shopId=1, itemName=Potato)], [CartItem(shopId=2, itemName=Banana), CartItem(shopId=2, itemName=Apple)]]

希望这可以解决您的问题。