編輯:關於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從以下例子可以看到一個基本類要實現序列化需要實現Parcelable接口,通過Parcel進行存儲。實現Parcelable接口的類必須有一個名為:CREATOR 的靜態字段,這是一個實現Parcelable.Creator接口的對象,這樣一個自定義的類型就可以跟基本數據一樣使用Intent進行傳遞。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(); } }
使用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(); } }
一 背景概述:ScrollView裡嵌套ListView,一直是Android開發者(反正至少是我們組)最討厭的設計之一,完美打破ListView(RecyclerVie
打印機其實和Android沒有什麼大的關系,和linux內核關聯才是比較強的。最近調試打印機,有那麼一點心得,一點一點記錄下來。 最終的結果是要在Andro
承香墨影Android--逐幀動畫FrameAnimation 前言 開門見山,本篇博客講解一下如何在Android平台下播放一個逐幀動畫。逐幀動
先請手機上打開小米手環,點擊右上角的“更多”選項圖標,如圖所示 接著請在選項列表中點擊“服務”選項,如圖