Parcel的简单例子

来源:互联网 发布:淘宝销售属性怎么添加 编辑:程序博客网 时间:2024/05/19 15:42
public class MainActivity extends AppCompatActivity {    private static final String TAG = "MainActivity";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Parcel parcel = Parcel.obtain();        Pogo pogo = new Pogo("text");        //先写入共享内存        parcel.writeParcelable(pogo, 0);        parcel.writeParcelable(new Pogo("text2"), 0);        ////Parcel读写共用一个位置计数,这里一定要重置一下当前的位置        parcel.setDataPosition(0);        Pogo pogo1 = parcel.readParcelable(Pogo.class.getClassLoader());        Log.i(TAG, "onCreate: " + pogo1.getDes());    }}public class Pogo implements Parcelable {    private String des;    public Pogo(String des) {        this.des = des;    }    private Pogo(Parcel in) {        des = in.readString();    }    public static final Creator<Pogo> CREATOR = new Creator<Pogo>() {        @Override        public Pogo createFromParcel(Parcel source) {            return new Pogo(source);        }        @Override        public Pogo[] newArray(int size) {            return new Pogo[size];        }    };    public String getDes() {        return des;    }    @Override    public int describeContents() {        return 0;    }    @Override    public void writeToParcel(Parcel dest, int flags) {        dest.writeString(des);    }}
原创粉丝点击