美文网首页安卓集中营安卓开发Android开发经验谈
采用Parceler高效快速在intent间传递对象

采用Parceler高效快速在intent间传递对象

作者: 蓝不蓝编程 | 来源:发表于2019-02-21 16:50 被阅读4次

内容简介

安卓里在intent间传递数据时,一般采用Parcelable,但是这个东东写起来稍显麻烦,后续在对象里增减字段也要谨慎维护。有牛人写了个简化Parcelable的处理方式,即Parceler,试用了下,使用起来确实较为简单。不过也有一个问题,如果传递的对象是kotlin类,会报错(rg.parceler.ParcelerRuntimeException: Unable to find generated Parcelable class for),只能采用java类;如果要采用kotlin类,可以参考文章:https://www.jianshu.com/p/a32ecbfab6b0

使用方式

  1. build.gradle文件添加依赖
implementation 'org.parceler:parceler-api:1.1.12'
annotationProcessor 'org.parceler:parceler:1.1.12'
  1. 定义数据类User.java:
import org.parceler.Parcel;

@Parcel
public class User {
    String name;
    int age;

    public User() {}

    public User(int age, String name) {
        this.age = age;
        this.name = name;
    }

    public String getName() { return name; }

    public int getAge() { return age; }
}
  1. 通过intent传递对象:
var intent = Intent(this@MainActivity, SecondActivity::class.java)
val user = User(10, "Andy")
intent.putExtra("extraKey", Parcels.wrap(user))
startActivity(intent)
  1. 通过intent接收对象:
val user = Parcels.unwrap<User>(intent.getParcelableExtra("extraKey"))
infoTextView.text = user.name

安卓开发技术分享: https://www.jianshu.com/p/442339952f26

相关文章

  • 采用Parceler高效快速在intent间传递对象

    内容简介 安卓里在intent间传递数据时,一般采用Parcelable,但是这个东东写起来稍显麻烦,后续在对象里...

  • Kotlin快速通过Parcelable在intent间传递对象

    内容简介 Java代码里要通过Parcelable在intent间传递对象时,Java对象要实现Parcelabl...

  • 8.7 Intent2

    Intent传递简单数据 Intent传递数组 Intent传递集合 Intent传递对象 1.将对象转换为Jso...

  • Intent 和 Intent 过滤器

    Intent是一个消息传递对象,我们一般用它来在组件间进行通信。 一、Intent类型 Intent分为两种类型:...

  • Activity间传递数据

    Activity间传递对象需要序列化 Activity //在一个Activity中创建Intent对象,并配置参...

  • Activity之间通过Intent传递对象

    Android Activity之间通过Intent传递对象 在Activity之间传递对象,这个对象须是可以序列...

  • 面试考点

    1、Android Intent之传递带有对象的集合(Serializable传递对象和对象集合) [https:...

  • Intent传递对象

    利用Gson将对象序列化,然后传递.putExtra("json", new Gson().toJson(term...

  • Intent传递对象

    背景在某些情况下,我们需要使用到Intent去传递一个自定义对象,这样能够减少许多不必要的代码。查阅一下,传递的对...

  • Intent传递对象

    问题: Intent传递model到下一层页面,model里包含一个JsonArray对象 报错: 问题原因: 解...

网友评论

    本文标题:采用Parceler高效快速在intent间传递对象

    本文链接:https://www.haomeiwen.com/subject/pmhdyqtx.html