我有一个来自rest API的JSON字符串,并将其绑定(bind)到List<CategoryDO>
对象中。我将所有类别/子类别数据放入此列表对象List<CategoryDO>
中,但是我不知道如何将这些数据中的子类别分离为Array<List<CategoryDO>>
格式。
如何将子类别列表添加到Array<List<CategoryDO>>
对象中?如何在Kotlin中声明和初始化Array<List<CategoryDO>>
?
所有类别均应采用List<CategoryDO>
格式,所有子类别均应采用Array<List<CategoryDO>>
格式。
例如:
List<CategoryDO of Cat-1, CategoryDO of cat-2, ... etc>
Array<List<CategoryDO of SubCat-1 of Cat-1, CategoryDO of SubCat-2 of Cat-1>>, List<CategoryDO of SubCat-12 of Cat-2, CategoryDO of SubCat-22 of Cat-2>>, ...etc>>
CategoryDO数据类:
data class CategoryDO( @SerializedName("Id")
@Expose
var id: Long? = null,
@SerializedName("Name")
@Expose
var name: String? = null,
@SerializedName("SubCategories")
@Expose
var subCategories: List<CategoryDO>? = null)
实际上,我需要将此单独的类别/子类别内容传递给
CategoryAdapter
类。CategoryAdapter
类示例:class CategoryAdapter : BaseExpandableListAdapter {
private var groupItem: List<CategoryDO>
private var contentItem: Array<List<CategoryDO>>
private var context: Context
private var imageOnClickListener: View.OnClickListener
constructor(context: Context, groupItem: List<CategoryDO>, contentItem: Array<List<CategoryDO>>, imageOnClickListener: View.OnClickListener) {
this.groupItem = groupItem
this.contentItem = contentItem
this.context = context
this.imageOnClickListener = imageOnClickListener
}
.
.
.
}
最佳答案
如果您需要将List<CategoryDO>
转换为Array<List<CategoryDO>>
,其中内部列表是每个CategoryDO
的子类别列表,则可以映射到原始列表并将结果转换为数组...
// Given
val categories: List<CategoryDO> = TODO()
val allSubCats: Array<List<CategoryDO>> =
categories.map { it. subCategories }.toTypedArray()