• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android Studio添加Parcelable序列化小工具(快速提高开发效率)

Android Studio添加Parcelable序列化小工具(快速提高开发效率)

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android parcelable,parcelable,parcelable接口,parcelable翻译,parcelable怎么读等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android Studio添加Parcelable序列化小工具(快速提高开发效率)


Android Studio添加Parcelable序列化小工具(快速提高开发效率)

Android Studio是google专门为开发Android提供的开发工具,在它内部可以直接的添加一些非常好用的开发小工具,这里就讲解怎样添加这些小工具,并且向大家推荐一个非常有用的对象传递时,必须要把对象序列化的接口Parcelable小工具;

 

这里先介绍下 Android中实现序列化的两个选择:一是实现Serializable接口(是JavaSE本身就支持的),一是实现Parcelable接口(是Android特有功能,效率比实现Serializable接口高效,可用于Intent数据传递,也可以用于进程间通信(IPC))。实现Serializable接口非常简单,声明一下就可以了,而实现Parcelable接口稍微复杂一些,但效率更高,推荐用这种方法提高性能。

并且值得注意的是 Android中Intent传递对象也对应有两种方法:一是Bundle.putSerializable(Key,Object),另一种是Bundle.putParcelable(Key,Object)。当然这些Object是有一定的条件的,前者是实现了Serializable接口,而后者是实现了Parcelable接口。

好了介绍了对象序列化之后,就来看看怎样添加这样的小工具了:

第一步:点击设置(Setting)

\

 

第二步:点击Plugins,然后点击2所指的Browse repositories (浏览存储库)

\

 

第三步: 然后在1所指的输入框中收索你想要下载的插件小工具,然后2所指的就是下载数量和用户评分,3所指的就是安装,点击3所指的安装按钮,就能下载安装这个插件了。 这里要给大家讲的是,这里的插件都是全球Android开发人员都能下载的,所以大家看到很多4颗星和5颗星的评分,都是非常值得去研究,没事的时候大家就可以百度看看是干什么的,觉得有意思的话就可以下来研究一下,这里有很多有趣的小插件,可以帮助我们减少很多不必要的代码,下面给大家推荐的Parcelable小插件就是方便大家对象序列化的。

\

好了上面介绍了怎样安装小插件的方法,我们接下来就为大家介绍怎样安装Parcelable小插件。

在上图 1处中输入Parcelable,在下面的收索结果 中就有一个 Android Parcelable code generator,没错就是它,它评分还是非常高的,接近5颗星,说明性能啊什么的还是非常值得肯定的,而且有8万多人下载。那么我们就点击下载安装后,就可以使用了;如下图

\

注意,下载安装后,必须要重启Android Studio 刚才安装的小插件才能使用;

接下就教大家怎么使用;

第一步:要在你传递的实体类 中鼠标右键,如下图 ,点击 Generate... (或者直接快捷键 Alt+Insert)

\

点击了Generate...之后,就出现了如下菜单界面,点击Parcelable,就能直接快速的使对象是想Parcelable了。

\

然后就会弹出一个窗口,让我们选择要序列化的属性,这里就全选如下图:

\

点击Ok之后,这个对象就实现了Parcelable,并且在后面会自动的生成一些代码,这是非常方便的。

下面就是点击了Parcelable,对象就成功序列化了,这样就省去了我们很多时间,而且对象使用Parcelable接口实现序列化,在activity之间传递是非常快速的。

package com.iqtogether.qxueyou.activity;

import android.os.Parcel;
import android.os.Parcelable;

/**
 * Created by chengguo on 2016/3/15.
 */
public class User implements Parcelable {
    private String userId;
    private String userName;
    private String userSex;
    private int userAge;

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserSex() {
        return userSex;
    }

    public void setUserSex(String userSex) {
        this.userSex = userSex;
    }

    public int getUserAge() {
        return userAge;
    }

    public void setUserAge(int userAge) {
        this.userAge = userAge;
    }

    public String getUserHome() {
        return userHome;
    }

    public void setUserHome(String userHome) {
        this.userHome = userHome;
    }

    private String userHome;

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(this.userId);
        dest.writeString(this.userName);
        dest.writeString(this.userSex);
        dest.writeInt(this.userAge);
        dest.writeString(this.userHome);
    }

    public User() {
    }

    protected User(Parcel in) {
        this.userId = in.readString();
        this.userName = in.readString();
        this.userSex = in.readString();
        this.userAge = in.readInt();
        this.userHome = in.readString();
    }

    public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
        public User createFromParcel(Parcel source) {
            return new User(source);
        }

        public User[] newArray(int size) {
            return new User[size];
        }
    };
}

注意:如果User对象中包含有对象属性,这个对象属性它自身也必须要实现Parcelable接口,如下图,User对象的一个对象属性,没有实现Parcelable接口就会出现序列化失败的提示;

这里给User设置一个House对象属性,这里做个范例

\

 

然后错误提示如下:

\

 

提示: 要求传递一个实现了Parcelable接口的对象。这时候我们去给House对象实现Parcelable接口就Ok了。

如下House对象:

package com.iqtogether.qxueyou.activity;

import android.os.Parcel;
import android.os.Parcelable;

/**
 * Created by chengguo on 2016/3/15.
 */
public class House implements Parcelable {
    private String price;

    public String getPrice() {
        return price;
    }

    public void setPrice(String price) {
        this.price = price;
    }

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(this.price);
    }

    public House() {
    }

    protected House(Parcel in) {
        this.price = in.readString();
    }

    public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
        public House createFromParcel(Parcel source) {
            return new House(source);
        }

        public House[] newArray(int size) {
            return new House[size];
        }
    };
}


接下来就是整个User对象的代码 如下:

package com.iqtogether.qxueyou.activity;

import android.os.Parcel;
import android.os.Parcelable;

/**
 * Created by chengguo on 2016/3/15.
 */
public class User implements Parcelable {
    private String userId;
    private String userName;
    private String userSex;
    private int userAge;
    private House userHouse;

    public House getUserHouse() {
        return userHouse;
    }

    public void setUserHouse(House userHouse) {
        this.userHouse = userHouse;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserSex() {
        return userSex;
    }

    public void setUserSex(String userSex) {
        this.userSex = userSex;
    }

    public int getUserAge() {
        return userAge;
    }

    public void setUserAge(int userAge) {
        this.userAge = userAge;
    }

    public String getUserHome() {
        return userHome;
    }

    public void setUserHome(String userHome) {
        this.userHome = userHome;



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android Studio添加Parcelable序列化小工具(快速提高开发效率)
  • android:Activity数据传递之对象(parcelable)

相关文章

  • 2017-05-26android使用AIDL实现跨进程通讯(IPC)
  • 2017-05-26Spark的调度策略详解
  • 2017-05-26Android中AlarmManager使用示例(持续更新,已经更改),alarmmanager
  • 2017-05-26自定义加载loading view动画组件的使用。,loadingview
  • 2017-05-26ViewPager结合view无限滑动,viewpagerview滑动
  • 2017-05-26用Android Studio 运行ndk 程序
  • 2017-05-26Android Activity的生命周期简单总结
  • 2017-05-26Android 调用百度地图API,androidapi
  • 2017-05-26redis cluster搭建
  • 2017-05-26关于我,关于我们

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 硅谷社交15--群详情,硅谷社交15--
    • 硅谷商城6--购物车编辑实现,硅谷商城6--购物车
    • Android之侧滑导航栏,android滑导航栏
    • 自定义控件详解(五):onMeasure()、onLayout(),onmeasureonlayout
    • android studio快捷键,androidstudio
    • 玩转Android---事件监听篇---第2篇,android---第2篇
    • H5调用Android播放视频,h5调用android
    • 使用Android-Debug-Database 在浏览器中查看App的数据库,清科zdatabase数据库
    • 深度剖析:Android_PullToRefresh
    • Dialog 用代码来实现全屏

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有