編輯:關於Android編程
在使用Parcelable對android中數據的序列化操作還是比較有用的,有人做過通過對比Serializable和Parcelable在android中序列化操作對象的速度比對,大概Parcelable相比Serializable要快10倍左右、、、給一個連接可以瞅瞅他們序列化的區別http://greenrobot.me/devpost/android-parcelable-serializable/
下面來總結一下我們基本數據類型、對象、數組、list等做Parcelable的方法,主要是做個總結直接看下code
package com.suning.mobile.paysdk.pay; import java.util.ArrayList; import android.os.Parcel; import android.os.Parcelable; import com.yaya.test.OrderInfoBean; /** * * 〈一句話功能簡述〉
* 〈功能詳細描述〉 數據類型序列化 */ public class ParcelableType implements Parcelable { /** int 類型 */ int age; /** String 類型 */ String name; /** boolean 注意該boolean的get和set方法 **/ boolean isGood; /** boolean 類型 **/ boolean complete; /** 數組 **/ private String[] ids; /** 對象 [內部已經序列化] **/ private OrderInfoBean bean; /** list **/ private ArrayListlistBeans; /** * 默認構造方法 */ public ParcelableType() { // TODO Auto-generated constructor stub } public ParcelableType(Parcel in) { readFromParcel(in); } /*** * 默認實現 */ @Override public int describeContents() { // TODO Auto-generated method stub return 0; } @Override public void writeToParcel(Parcel dest, int flags) { /** int 寫入 **/ dest.writeInt(age); /** string 寫入 **/ dest.writeString(name); /** boolean 寫入 **/ dest.writeInt(isGood ? 1 : 0); /** boolean 寫入 **/ dest.writeInt(complete ? 1 : 0); /** 數組 寫入 **/ if (ids != null) { dest.writeInt(ids.length); } else { dest.writeInt(0); } dest.writeStringArray(ids); /** 對象 寫入 **/ dest.writeParcelable(bean, flags); /** list 寫入 **/ dest.writeList(listBeans); } @SuppressWarnings("unchecked") private void readFromParcel(Parcel in) { /** int 讀出 */ age = in.readInt(); /** stirng 讀出 */ name = in.readString(); /** boolean 讀出 */ isGood = (in.readInt() == 1) ? true : false; /** boolean 讀出 */ complete = (in.readInt() == 1) ? true : false; /** 數組 讀出 */ int length = in.readInt(); ids = new String[length]; in.readStringArray(ids); /** 對象 讀出 */ bean = in.readParcelable(OrderInfoBean.class.getClassLoader()); /** list 讀出 */ listBeans = in.readArrayList(OrderInfoBean.class.getClassLoader()); } public static final Parcelable.Creator CREATOR = new Parcelable.Creator () { public ParcelableType createFromParcel(Parcel in) { return new ParcelableType(in); } public ParcelableType[] newArray(int size) { return new ParcelableType[size]; } }; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } /** * * 功能描述:
* 〈功能詳細描述〉 fastJson解析時需要格式 */ public boolean isIsGood() { return isGood; } public void setIsGood(boolean isGood) { this.isGood = isGood; } public boolean isComplete() { return complete; } public void setComplete(boolean complete) { this.complete = complete; } public String[] getIds() { return ids; } public void setIds(String[] ids) { this.ids = ids; } public OrderInfoBean getBean() { return bean; } public void setBean(OrderInfoBean bean) { this.bean = bean; } public ArrayListgetListBeans() { return listBeans; } public void setListBeans(ArrayList listBeans) { this.listBeans = listBeans; } }
Android開發中,大部分控件都有visibility這個屬性,其屬性有3個分別為“visible ”、“invisible”、“gone”。主要用來設置控制控件的顯示
本文實例講述了Android中ListView下拉刷新的實現方法。分享給大家供大家參考,具體如下:ListView中的下拉刷新是非常常見的,也是經常使用的,看到有很多同學
如果你在開發過程中經常使用 RadioGroup,那你是否遇到過下面這種情況每當你點擊EditText彈出輸入法時,RadioGroup總是向上移動到輸入法的上面。你可能
字體圖標字體圖標是指將圖標做成字體文件(.ttf),從而代替傳統的png等圖標資源。使用字體圖標的優點和缺點分別為: 優點: &nbs