如何为自定义对象的 ArrayList 添加 parcelable 实现?

     2023-04-18     61

关键词:

【中文标题】如何为自定义对象的 ArrayList 添加 parcelable 实现?【英文标题】:How to add the parcelable implementation for ArrayList of Custom object? 【发布时间】:2021-12-02 02:02:55 【问题描述】:

我创建了一个包含自定义对象的 ArrayList 和一些其他字符串变量的类。我使用“添加可打包的实现”来使此类可打包。

在自动生成的代码中,我尝试将 readTypedList 用于 TODO 部分,但随后出现如下所示的错误。我使用的自定义对象 Cart 也是 parcelable 的。

这是上图中提到的代码。

class Orders (
   var id:String="",
   var user_id:String="",
   var products: ArrayList<Cart> =arrayListOf(),
   var addressId:String="",
   val image:String="",
   val title:String="",
   val subTotal:String="",
   val shippingCharge:String="",
   val total:String="",
  ) : Parcelable 
   constructor(parcel: Parcel) : this(
       parcel.readString().toString(),
       parcel.readString().toString(),
       TODO("products"),
       parcel.readString().toString(),
       parcel.readString().toString(),
       parcel.readString().toString(),
       parcel.readString().toString(),
       parcel.readString().toString(),
       parcel.readString().toString()
   ) 
   

   override fun writeToParcel(parcel: Parcel, flags: Int) 
       parcel.writeString(id)
       parcel.writeString(user_id)
       parcel.writeString(addressId)
       parcel.writeString(image)
       parcel.writeString(title)
       parcel.writeString(subTotal)
       parcel.writeString(shippingCharge)
       parcel.writeString(total)
   

   override fun describeContents(): Int 
       return 0
   

companion object CREATOR : Parcelable.Creator<Orders> 
    override fun createFromParcel(parcel: Parcel): Orders 
        return Orders(parcel)
    

    override fun newArray(size: Int): Array<Orders?> 
        return arrayOfNulls(size)
    

提前感谢您的帮助。

【问题讨论】:

product 值在创建 Orders 对象之前不存在。另外,请发布代码,而不是图片。 但是必须有其他方法可以让我的课程可打包。 【参考方案1】:

您不能使用products 列表,因为当您还没有调用主构造函数时它还不存在。相反,创建一个要读入的列表。由于readTypedList 不返回任何内容,您可以使用also

所以对于products 行使用:

arrayListOf().also  parcel.readTypedList(it, Cart.CREATOR) ,

【讨论】:

“它”未被识别。它说的是未解决的参考。同样对于arrayListOf,它说“没有足够的信息来推断类型变量T” 然后添加类型arrayListOf&lt;Cart&gt;()

如何为颤振添加自定义颜色?

】如何为颤振添加自定义颜色?【英文标题】:howtoaddcustomcolortoflutter?【发布时间】:2018-11-0601:17:37【问题描述】:我想更改AppBar的颜色并为其使用自定义颜色,我尝试了很多选项,但似乎都不起作用。我有什么遗漏吗?import\'pa... 查看详情

如何为自定义 FontFamily 添加权重?

】如何为自定义FontFamily添加权重?【英文标题】:HowtoaddweighttocustomFontFamily?【发布时间】:2017-04-0701:12:46【问题描述】:我有多个来自同一家族的.ttf文件,例如:MyFont.ttfMyFont_Bold.ttfMyFont_Light.ttfMyFont_Medium.ttf如果我想使用每个权... 查看详情

如何为复杂对象编写自定义 JSON 解码器?

】如何为复杂对象编写自定义JSON解码器?【英文标题】:HowtowriteacustomJSONdecoderforacomplexobject?【发布时间】:2018-08-0602:39:14【问题描述】:正如标题所说,我正在尝试为我定义的类包含我定义的其他对象的对象编写自定义解码器... 查看详情

如何为已添加在 UIViewController 之上的 tableView 添加自定义单元格?

】如何为已添加在UIViewController之上的tableView添加自定义单元格?【英文标题】:HowdoIaddcustomcellsforatableViewwhichhasbeenaddedontopofaUIViewController?【发布时间】:2019-08-0211:48:28【问题描述】:我在一个普通的UIViewController类上使用了一个t... 查看详情

如何为自定义单元格中的动态附加输入字段添加约束

】如何为自定义单元格中的动态附加输入字段添加约束【英文标题】:Howtoaddconstraintsfordynamicappendinginputfieldsincustomcell【发布时间】:2019-12-0410:45:23【问题描述】:如何在自定义表格单元格中添加动态输入字段的同时实现单元格... 查看详情

如何为 jQuery 选择器制作自定义函数

】如何为jQuery选择器制作自定义函数【英文标题】:HowtomakecustomfunctionforjQueryselector【发布时间】:2011-10-0211:02:57【问题描述】:如何制作一个自定义函数来附加到jQuery选择器?看起来像这样的东西:$(\'.my_class\').my_function();【问... 查看详情

如何为 Spring Boot 2 添加自定义 MeterRegisty

】如何为SpringBoot2添加自定义MeterRegisty【英文标题】:HowtoaddcustomMeterRegistyforSpringBoot2【发布时间】:2020-03-2114:13:22【问题描述】:我目前正在以10秒的间隔将我的SpringBootWebflux项目的执行器指标导出到DataDog。我想为我们的一个内... 查看详情

如何为可编码对象提供自定义代码功能

】如何为可编码对象提供自定义代码功能【英文标题】:howtoprovideacustomcodefunctoencodableobject【发布时间】:2018-12-2613:47:25【问题描述】:有一种方法可以使我的oncode函数适用于我的可编码结构,我面临的问题是我可以从网络对其... 查看详情

如何为形状添加自定义视图修改器

】如何为形状添加自定义视图修改器【英文标题】:HowcaniaddacustomViewmodifierforShapes【发布时间】:2019-11-2100:15:17【问题描述】:我想用某种修饰符调用我的ImageView以使其中的图像为圆形或方形。代码应如下所示:ImageView(withURL:news... 查看详情

Flask Mail:如何为发件人添加自定义名称?

】FlaskMail:如何为发件人添加自定义名称?【英文标题】:FlaskMail:howtoaddcustomnametothesender?【发布时间】:2019-04-2416:37:11【问题描述】:我正在使用Flask邮件发送电子邮件。一切正常,除了我注意到发件人姓名只是电子邮件的第一... 查看详情

如何为 UITableView 添加自定义 EditingAccessoryView?

】如何为UITableView添加自定义EditingAccessoryView?【英文标题】:HowtoaddCustomEditingAccessoryViewforUITableView?【发布时间】:2010-10-2508:01:27【问题描述】:我想在单元格中添加自定义EditingAccessoryView,当用户滑动代替删除按钮时,我想显... 查看详情

如何为 GitHub 组织添加自定义用户角色?

】如何为GitHub组织添加自定义用户角色?【英文标题】:HowtoaddcustomuserrolesforaGitHuborganisation?【发布时间】:2016-09-2413:04:15【问题描述】:GitHub上的组织中有两个默认用户角色:“admin”和“member”。如何进一步引入角色并配置其... 查看详情

如何为自定义 uicontrol 和控制器添加触摸事件?

】如何为自定义uicontrol和控制器添加触摸事件?【英文标题】:Howtoaddtoucheventforcustomuicontrolandcontroller?【发布时间】:2017-09-1021:50:51【问题描述】:我有一个具有三个子视图的自定义UIControl。每个子视图,我添加一个目标:button.... 查看详情

如何为自定义 UITableView 标题部分笔尖添加分隔线? [复制]

】如何为自定义UITableView标题部分笔尖添加分隔线?[复制]【英文标题】:HowdoIaddaseparatorlineforacustomUITableViewheadersectionnib?[duplicate]【发布时间】:2017-04-2206:56:57【问题描述】:我按照这个答案here中的说明操作并设法获得我的自定... 查看详情

如何为arraylist添加数字

】如何为arraylist添加数字【英文标题】:Howtoaddnumbersforarraylist【发布时间】:2018-09-1601:56:27【问题描述】:我需要为arraylist添加数字我有一个listview复选框,我选择了我可以获得数字12352524的项目,我需要添加到arraylist.Thisimagehttp... 查看详情

如何为自定义 Android 通知添加垂直线到 RemoteView?

】如何为自定义Android通知添加垂直线到RemoteView?【英文标题】:HowtoaddverticallinetoRemoteViewforcustomAndroidNotifications?【发布时间】:2012-05-2308:10:03【问题描述】:我正在努力为自定义Android通知添加一条垂直线。我尝试将这样的视图... 查看详情

如何为自定义 B2B 应用添加 Apple ID?

】如何为自定义B2B应用添加AppleID?【英文标题】:HowdoyouaddAppleID\'sforaCustomB2Bapp?【发布时间】:2015-03-1614:46:32【问题描述】:我正在尝试将自定义B2B应用程序添加到iTunes连接,从Apples文档看来应该有一个文本框来输入客户端AppleI... 查看详情

如何为 Django 对象创建自定义过滤器标签?

】如何为Django对象创建自定义过滤器标签?【英文标题】:HowtocreateacustomfiltertagforaDjangoobject?【发布时间】:2020-11-0716:31:11【问题描述】:我有一个名为Profile的模型。我想根据这个想法创建一个自定义过滤器标签:Profile.objects.fi... 查看详情