如何在 android kotlin Android 中传递来自 NavGraph 的数据列表

问题描述 投票:0回答:1

出现此错误:

类型不匹配:推断类型为 List,但预期为 List 无法在片段之间传递数据

导航图代码:

navGraph
        <argument
            android:name="bookingRequestList"
            app:argType="com.jvm.di.model.parkingSpot.response.BookParkingResponse.Data" />

响应类

@Parcelize
data class BookParkingResponse(
    @SerializedName("data") var data: List<Data>? = null
):Parcelable {
    @Parcelize
    data class Data(
        @SerializedName("parkingRequests") var parkingRequests: List<ParkingRequests>? = null
    ) : Parcelable {
        @Parcelize
        data class ParkingRequests(
            @SerializedName("parkingSpotId") var parkingSpotId: Int? = null,
            @SerializedName("bookingStatus") var bookingStatus: String? = null,
            @SerializedName("amount") var amount: Double? = null):Parcelable
}
// pass data on itemClick 
 findNavController().navigate( MyParkFragmentDirections.toAllRequestListFragment(it))

// how I receive data in another fragments
private val args: AllRequestListFragmentArgs by navArgs()
 allRequestListAdapter = AllRequestListAdapter()
            rvItems.adapter = allRequestListAdapter
            allRequestListAdapter.allParkingRequestList = listOf(args.bookingRequestList)
// how i create list in adapter 
 internal var allParkingRequestList: List<BookParkingResponse.Data> by Delegates.observable(
        emptyList()
    ) { _, _, _ -> notifyDataSetChanged() }
android json kotlin android-navigation-graph pass-data
1个回答
0
投票

你应该写下面的代码

app:argType="com.jvm.di.model.parkingSpot.response.BookParkingResponse.Data.ParkingRequests"
© www.soinside.com 2019 - 2024. All rights reserved.