android基礎---->Parcelable的使用

來源:互聯網
上載者:User

標籤:

 android中Parcelable序列化的使用。

 

目錄導航: 

  1.  Serializable在android中的使用
  2.  Parcelable在android中的使用
  3.  Serializable與Parcelable的比較
  4.  友情連結

 

項目結構如下:

 

Serializable在android中的使用

一、 建立一個實現了Serializable介面的Man類:

package com.example.linux.parcelabletest;import java.io.Serializable;/** * Created by Linux on 2016/3/22. */public class Man implements Serializable {    private String username;    private String password;    public Man(String username, String password) {        this.username = username;        this.password = password;    }    public String getUsername() {        return username;    }    public String getPassword() {        return password;    }}

 

二、 MainActivity中serializable在android中的序列化

// serializable的使用public void serializable(View view) {    Intent intent = new Intent();    intent.setClass(MainActivity.this, AnotherActivity.class);    Man man = new Man("google", "android");    Bundle bundle = new Bundle();    bundle.putSerializable("man", man);    intent.putExtras(bundle);    startActivity(intent);}

 

三、  AnotherActivity中serializable在android中的還原序列化:

Intent intent = getIntent();Bundle extras = intent.getExtras();Man man = (Man) extras.getSerializable("man");Log.i(TAG, "username: " + man.getUsername() + ", password: " + man.getPassword());

 

四、 列印結果如下:  

03-23 00:46:27.870 30378-30378/com.example.linux.parcelabletest I/Parcelable: username: google, password: android

 

Parcelable在android中的使用

一、 建立一個實現了Parcelable介面的Person類:

package com.example.linux.parcelabletest;import android.os.Parcel;import android.os.Parcelable;import android.util.Log;/** * Created by Linux on 2016/3/20. */public class Person implements Parcelable {    private final static String TAG = "Parcelable";    private String username;    private String password;    public Person(String username, String password) {        Log.i(TAG, "person constructor. username and password"); // 1        this.username = username;        this.password = password;    }    public String getUsername() {        Log.i(TAG, "get usrename");        return username;    }    public String getPassword() {        Log.i(TAG, "get password");        return password;    }    @Override    public int describeContents() {        Log.i(TAG, "desceibe contents");        return 0;    }    @Override    public void writeToParcel(Parcel dest, int flags) {        Log.i(TAG, "write to parcel: " + flags); // 2        dest.writeString(username);        dest.writeString(password);    }    public static final Parcelable.Creator<Person> CREATOR = new Creator<Person>() {        @Override        public Person createFromParcel(Parcel source) {            Log.i(TAG, "creator: create from parcel"); // 3            return new Person(source);        }
@Override public Person[] newArray(int size) { Log.i(TAG, "creator: new array"); return new Person[size]; } }; public Person(Parcel parcel) { Log.i(TAG, "person constructor. parcel"); // 4 username = parcel.readString(); password = parcel.readString(); }}

 

 二、 MainActivity中Parcelable在android中的序列化

// parcelable序列化的使用    public void parcelable(View view) {        Intent intent = new Intent();        intent.setClass(MainActivity.this, AnotherActivity.class);        Person person = new Person("huhx", "linux");        Bundle bundle = new Bundle();        bundle.putParcelable("person", person);        intent.putExtras(bundle);        startActivity(intent);    }

 

三、  AnotherActivity中Parcelable在android中的還原序列化:

Intent intent = getIntent();Bundle extras = intent.getExtras();Person person = extras.getParcelable("person");Log.i(TAG, "username: " + person.getUsername() + ", password: " + person.getPassword());

 

四、 列印結果如下:

03-23 00:45:49.510 30378-30378/com.example.linux.parcelabletest I/Parcelable: person constructor. username and password03-23 00:45:49.510 30378-30378/com.example.linux.parcelabletest I/Parcelable: write to parcel: 003-23 00:45:49.660 30378-30378/com.example.linux.parcelabletest I/Parcelable: creator: create from parcel03-23 00:45:49.660 30378-30378/com.example.linux.parcelabletest I/Parcelable: person constructor. parcel03-23 00:45:49.660 30378-30378/com.example.linux.parcelabletest I/Parcelable: get usrename03-23 00:45:49.660 30378-30378/com.example.linux.parcelabletest I/Parcelable: get password03-23 00:45:49.660 30378-30378/com.example.linux.parcelabletest I/Parcelable: username: huhx, password: linux

 

Serializable與Parcelable的比較

 

友情連結

  測試程式原始碼               訪問密碼 7925

 

android基礎---->Parcelable的使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.