kotlin使用Parcelize注解简化Parcelable的书写
来源:互联网 发布:python不打印空格 编辑:程序博客网 时间:2024/06/04 18:05
kotlin使用Parcelize注解简化Parcelable的书写
Parcelize注解
kotlin在1.1.4版本增加了对parcelable的支持
Android扩展插件现在包含一个实现了Parcelable的自动生成器。在主构造函数中声明序列化的属性并添加一个@Parcelize注解,生成器就会自动创建writeToParcel()/ createFromParcel()方法
需求环境
Kotlin版本为1.1.4或者更高
开始使用
在build.gradle中添加支持
apply plugin: ‘kotlin-android-extensions’....androidExtensions { experimental = true}
实体类
Student.kt
@Parcelizedata class Student(val id: String, val name: String, val grade: String) : Parcelable
对比Java实体类
Student.java
public class Student implements Parcelable{ private String id; private String name; private String grade; // Constructor public Student(String id, String name, String grade){ this.id = id; this.name = name; this.grade = grade; } // Getter and setter methods ......... ......... // Parcelling part public Student(Parcel in){ String[] data = new String[3]; in.readStringArray(data); // the order needs to be the same as in writeToParcel() method this.id = data[0]; this.name = data[1]; this.grade = data[2]; } @Оverride public int describeContents(){ return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeStringArray(new String[] {this.id, this.name, this.grade}); } public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { public Student createFromParcel(Parcel in) { return new Student(in); } public Student[] newArray(int size) { return new Student[size]; } }; }
关于Lint检查报错
现在Android Studio会爆出下面图中的这个错误,这是IntelliJ的Bug,你可以在下面的链接找到相应的答案
https://youtrack.jetbrains.com/issue/KT-19300
所以你可以忽略这个警告并编译项目,或者也可以添加@SuppressLint(“ParcelCreator”)注解
英文原文链接
https://android.jlelse.eu/yet-another-awesome-kotlin-feature-parcelize-5439718ba220
阅读全文
0 1
- kotlin使用Parcelize注解简化Parcelable的书写
- Kotlin 一个好用的新功能:Parcelize
- 使用Kotlin简化Android开发
- Kotlin中泛型的序列化Parcelable
- Kotlin 的 接口.class实现书写方式
- List, Map, Set的联想-简化书写
- Spring 的配置文件简化与注解的使用
- 使用注解简化SSH框架
- hibernate使用注解简化开发
- 使用Java注解来简化你的代码
- 使用Java注解来简化你的代码
- Android Parcelable的使用
- Parcelable的使用
- Android Parcelable的使用
- Android Parcelable的使用
- Android Parcelable的使用
- Android Parcelable的使用
- Parcelable接口的使用
- requestmap
- Python ORM :SQLAlchemy基础使用
- 微信长连接转短连接
- Python Notes
- 问君硅谷几多渣?先把Snapchat总裁扒一扒
- kotlin使用Parcelize注解简化Parcelable的书写
- mongo-java-driver -3.2.2学习笔记-02-MongoDB Driver Admin Quick Tour
- git cherry-pick commitid捡樱桃
- VUE初学笔记
- HMM经典介绍论文【Rabiner 1989】翻译(十七)——多观测序列
- vs2015调试iisexpress无法启动的问题解决方案整理
- darwin之socket消息处理性能问题研究
- 我的python之旅
- Mac上使用VirtualBox安装CentOS虚拟机