您的位置:首页 > 移动开发 > Android开发

Android Serializable与Parcelable 用法

2015-12-13 16:31 405 查看
Serializable:

package com.example.keen.intentextra;

import java.io.Serializable;

/**
* Created by Keen on 12/13/2015.
*/
public class Person implements Serializable{
private String name;
private int age;

public String getName(){
return name;
}

public int getAge(){
return age;
}
public void setAge(int age){
this.age = age;
}

public void setName(String name){
this.name = name;
}

}


Parcelable:
package com.example.keen.intentextra;

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

/**
* Created by Keen on 12/13/2015.
*/
public class Book implements Parcelable {
private String bookName;
private String author;
private int publishDate;
public Book(){

}

public String getBookName(){
return bookName;
}
public void setBookName(String bookName){
this.bookName = bookName;
}

public String getAuthor(){
return author;
}

public void setAuthor(String author){
this.author = author;
}

public int getPublishDate(){
return publishDate;
}
public void setPublishDate(int publishDate){
this.publishDate = publishDate;
}

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

@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(bookName);
dest.writeString(author);
dest.writeInt(publishDate);
}

public static final Parcelable.Creator<Book> CREATOR = new Creator<Book>() {
@Override
public Book createFromParcel(Parcel source) {
return new Book(source);
}

@Override
public Book[] newArray(int size) {
return new Book[size];
}
};

public Book(Parcel in){
bookName = in.readString();
author = in.readString();
publishDate = in.readInt();
}
}


MianActivity:
package com.example.keen.intentextra;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class IntentExtraMainActivity extends AppCompatActivity {

private Button intentButton;
private Button parcelButton;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_intent_extra_main);

intentButton = (Button)findViewById(R.id.bt_intent);
intentButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Person person = new Person();
person.setName("Tom");
person.setAge(20);
Intent intent = new Intent(IntentExtraMainActivity.this, SecondActivity.class);
intent.putExtra("person_data", person);
startActivity(intent);
}
});

parcelButton = (Button)findViewById(R.id.bt_parcel);
parcelButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Book book = new Book();
book.setBookName("test");
book.setAuthor("haha");
book.setPublishDate(100);
Intent intent = new Intent(IntentExtraMainActivity.this, SecondActivity.class);
intent.putExtra("book_data", book);
startActivity(intent);
}
});

}
}


SecondActivity:
package com.example.keen.intentextra;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class SecondActivity extends AppCompatActivity {

private TextView textName;
private TextView textAge;

private TextView textBookName;
private TextView textBookAuthor;
private TextView textPublishDate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);

textAge = (TextView)findViewById(R.id.text_age);
textName = (TextView)findViewById(R.id.text_name);

textBookName = (TextView)findViewById(R.id.text_bookname);
textBookAuthor = (TextView)findViewById(R.id.text_bookauthor);
textPublishDate = (TextView)findViewById(R.id.text_bookpublishdate);

// Person person = (Person)getIntent().getSerializableExtra("person_data");
//
// textName.setText(person.getName());
// textAge.setText(Integer.toString(person.getAge()));

Book book = (Book)getIntent().getParcelableExtra("book_data");
textBookName.setText(book.getBookName());
textBookAuthor.setText(book.getAuthor());
textPublishDate.setText(Integer.toString(book.getPublishDate()));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: