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频道!