Android定义类,Android应用开发之自定义类内部变量

本文将带你了解Android应用开发adnroid中的序列化之自定义类内部变量,希望本文对大家学Android有所帮助。

对于基础的String,int等java支持的Parcelable类,简单写一下写入和读取就可以了,对于含有成员是自己写的Parcelable类有些不同,差别也不大。

代码如下,定义个Parcelable类

package com.xue.qin.demo.myparcelableclass;

import android.os.Parcel;

import android.os.Parcelable;

/**

* Created by xue.qin on   2017/6/5.

*/

public class MyObject implements Parcelable {

private int n;

private String name;

public int getN() {

return n;

}

public void setN(int n)   {

this.n = n;

}

public String getName()   {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getUseless()   {

return useless;

}

public void setUseless(String useless) {

this.useless = useless;

}

private String   useless;

public MyObject(){

n=0;

name="default";

useless="default";

}

public MyObject(int n, String name, String useless)   {

this.n = n;

this.name = name;

this.useless = useless;

}

public MyObject(Parcel source)   {

readFromParcel(source);

}

@Override

public int describeContents() {

return 0;

}

@Override

public void writeToParcel(Parcel dest, int flags) {

dest.writeInt(n);

dest.writeString(name);

dest.writeString(useless);

}

public void readFromParcel(Parcel source)   {

this.n = source.readInt();

this.name = source.readString();

this.useless =   source.readString();

}

public static final Parcelable.Creator   CREATOR = new Creator()   {

@Override

public MyObject createFromParcel(Parcel source)   {

MyObject myObject2 = new MyObject(source);

return myObject2;

}

@Override

public MyObject[] newArray(int size) {

return new MyObject[size];

}

};

@Override

public String toString() {

return "( n:" + n + " name:" + name + " useless:" + useless + " 地址:" + super.toString() + " )";

}

}

另一Parcelable类包含上一个MyObject的成员

package com.xue.qin.demo.myparcelableclass;

import android.os.Parcel;

import android.os.Parcelable;

/**

* Created by qinxue on   2018/4/4.

*/

public class OuterClassObj implements   Parcelable   {

private String   content;

private MyObject   myObject;

private OuterClassObj(Parcel source)   {

content =   source.readString();

myObject =   source.readParcelable(MyObject.class.getClassLoader());

}

public OuterClassObj(String content, MyObject   myObject) {

this.content = content;

this.myObject = myObject;

}

@Override

public int describeContents() {

return 0;

}

@Override

public void writeToParcel(Parcel parcel, int i) {

parcel.writeString(content);

parcel.writeParcelable(myObject,   i);

}

public static final Parcelable.Creator CREATOR =   new   Creator()   {

@Override

public OuterClassObj createFromParcel(Parcel source)   {

OuterClassObj outerObj =   new   OuterClassObj(source);

return outerObj;

}

@Override

public OuterClassObj[]   newArray(int size)   {

return new OuterClassObj[size];

}

};

@Override

public String toString()   {

return " content: "+content + " myObject =   "+myObject;

}

}

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值