Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android開發之使用Parcelable對自定義的類進行序列化

Android開發之使用Parcelable對自定義的類進行序列化

編輯:關於Android編程

如果自定義的類型需要通過Intent或IPC進行傳遞,就需要對數據進行序列化處理。

下面是Android官網上的一個例子

 

public class MyParcelable implements Parcelable {
     private int mData;

     public int describeContents() {
         return 0;
     }

     public void writeToParcel(Parcel out, int flags) {
         out.writeInt(mData);
     }

     public static final Parcelable.Creator CREATOR
             = new Parcelable.Creator() {
         public MyParcelable createFromParcel(Parcel in) {
             return new MyParcelable(in);
         }

         public MyParcelable[] newArray(int size) {
             return new MyParcelable[size];
         }
     };
     
     private MyParcelable(Parcel in) {
         mData = in.readInt();
     }
 }
從以下例子可以看到一個基本類要實現序列化需要實現Parcelable接口,通過Parcel進行存儲。實現Parcelable接口的類必須有一個名為:CREATOR 的靜態字段,這是一個實現Parcelable.Creator接口的對象,這樣一個自定義的類型就可以跟基本數據一樣使用Intent進行傳遞。

 

使用Intent傳遞MyParcelable

工程目錄

\

MainActivity.java

 

package com.example.parcelabledemo;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		Button btn = (Button) findViewById(R.id.btn);
		btn.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Intent intent = new Intent(MainActivity.this, HandleActivity.class);
				MyParcelable myParcelable = new MyParcelable(10);
				Bundle bundle = new Bundle();
				System.out.println(main  + myParcelable.get_data());
				bundle.putParcelable(value, myParcelable);
				intent.putExtras(bundle);
				startActivity(intent);
			}
		});
	}
}

 

 

HandleActivity.java
package com.example.parcelabledemo;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;

public class HandleActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.handle);
		Bundle bundle = getIntent().getExtras();
		MyParcelable myParcelable = bundle.getParcelable(value);
		System.out.println(myParcelable.toString());
		Toast.makeText(this, value =  + myParcelable.get_data(),
				Toast.LENGTH_LONG).show();
	}
}

一個類的序列化就完成了

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved