1.Serializable
特点,方便简单
public class CommonListResult implements Serializable{
private static final long serialVersionUID = 1L; private String aString; private String bString; private String cString; private ArrayList<String> dStrings; private ArrayList<CommonListResultStep> eArrayList; public String getaString() { return aString; } public void setaString(String aString) { this.aString = aString; } public String getbString() { return bString; } public void setbString(String bString) { this.bString = bString; } public String getcString() { return cString; } public void setcString(String cString) { this.cString = cString; } public ArrayList<String> getdStrings() { return dStrings; } public void setdStrings(ArrayList<String> dStrings) { this.dStrings = dStrings; } public ArrayList<CommonListResultStep> geteArrayList() { return eArrayList; } public void seteArrayList(ArrayList<CommonListResultStep> eArrayList) { this.eArrayList = eArrayList; }public class CommonListResultStep implements Serializable {
private static final long serialVersionUID = 2L; private String step1; private String step2; public String getStep1() { return step1; } public void setStep1(String step1) { this.step1 = step1; } public String getStep2() { return step2; } public void setStep2(String step2) { this.step2 = step2; }}MainActivity----->SerializableActivity
private void sendSeriabletoActivity() {
CommonListResult commonListResult = new CommonListResult(); commonListResult.setaString("a"); commonListResult.setbString("b"); commonListResult.setcString("c"); ArrayList<String> cArrayList = new ArrayList<String>(); cArrayList.add("d1"); cArrayList.add("d2"); commonListResult.setdStrings(cArrayList); ArrayList<CommonListResultStep> steps = new ArrayList<CommonListResultStep>(); CommonListResultStep commonListResultStep = new CommonListResultStep(); commonListResultStep.setStep1("step1.1"); commonListResultStep.setStep2("step1.2"); CommonListResultStep commonListResultStep2 = new CommonListResultStep(); commonListResultStep2.setStep1("step2.1"); commonListResultStep2.setStep2("step2.2"); steps.add(commonListResultStep); steps.add(commonListResultStep2); commonListResult.seteArrayList(steps); Intent intent = new Intent(MainActivity.this, SerializableActivity.class); intent.putExtra("commonlist_result", commonListResult); startActivity(intent); }public class SerializableActivity extends ActionBarActivity {
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_serializable); Intent intent = getIntent(); CommonListResult result = (CommonListResult) intent .getSerializableExtra("commonlist_result"); if (result != null) { ArrayList<String> strings = result.getdStrings(); Log.e("SerializableActivity", "strings :" + strings); ArrayList<CommonListResultStep> steps = result.geteArrayList(); Log.e("SerializableActivity", "step String :" + steps.get(0).getStep1() + steps.get(0).getStep2() + "\nsetp2 :" + steps.get(1).getStep1() + steps.get(1).getStep2()); } }2.Parcelable
特点,稍微复杂,但是内存效率高
public class CommonListResultParcelble implements Parcelable {
private String aString; private String bString; private String cString; private ArrayList<String> dStrings; private ArrayList<CommonListResultStepParcelble> eArrayList; public CommonListResultParcelble () { dStrings = new ArrayList<String>(); eArrayList = new ArrayList<CommonListResultStepParcelble>(); } public CommonListResultParcelble(Parcel in) { this(); readParcel(in); } public String getaString() { return aString; } public void setaString(String aString) { this.aString = aString; } public String getbString() { return bString; } public void setbString(String bString) { this.bString = bString; } public String getcString() { return cString; } public void setcString(String cString) { this.cString = cString; } public ArrayList<String> getdStrings() { return dStrings; } public void setdStrings(ArrayList<String> dStrings) { this.dStrings = dStrings; } public ArrayList<CommonListResultStepParcelble> geteArrayList() { return eArrayList; } public void seteArrayList(ArrayList<CommonListResultStepParcelble> eArrayList) { this.eArrayList = eArrayList; } private void readParcel(Parcel in) { this.aString = in.readString(); this.bString = in.readString(); this.cString = in.readString(); in.readStringList(dStrings); in.readList(eArrayList, CommonListResultStepParcelble.class.getClassLoader()); } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(aString); dest.writeString(bString); dest.writeString(cString); dest.writeStringList(dStrings); dest.writeList(eArrayList); } public static final Parcelable.Creator<CommonListResultParcelble> CREATOR = new Creator<CommonListResultParcelble>() { @Override public CommonListResultParcelble createFromParcel(Parcel source) { return new CommonListResultParcelble(source); } @Override public CommonListResultParcelble[] newArray(int size) { return new CommonListResultParcelble[size]; } };}public class CommonListResultStepParcelble implements Parcelable {
private String step1; private String step2; public String getStep1() { return step1; } public void setStep1(String step1) { this.step1 = step1; } public String getStep2() { return step2; } public void setStep2(String step2) { this.step2 = step2; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(step1); dest.writeString(step2); } public static final Parcelable.Creator<CommonListResultStepParcelble> CREATOR = new Creator<CommonListResultStepParcelble>() { @Override public CommonListResultStepParcelble createFromParcel(Parcel source) { CommonListResultStepParcelble commonListResultStepParcelble = new CommonListResultStepParcelble(); commonListResultStepParcelble.step1 = source.readString(); commonListResultStepParcelble.step2 = source.readString(); return commonListResultStepParcelble; } @Override public CommonListResultStepParcelble[] newArray(int size) { return new CommonListResultStepParcelble[size]; } };}MainActivity---->ParcebleActivity
private void sendParceltoActivity() {
CommonListResultParcelble commonListResult = new CommonListResultParcelble(); commonListResult.setaString("a"); commonListResult.setbString("b"); commonListResult.setcString("c"); ArrayList<String> cArrayList = new ArrayList<String>(); cArrayList.add("d1"); cArrayList.add("d2"); commonListResult.setdStrings(cArrayList); ArrayList<CommonListResultStepParcelble> steps = new ArrayList<CommonListResultStepParcelble>(); CommonListResultStepParcelble commonListResultStep = new CommonListResultStepParcelble(); commonListResultStep.setStep1("step3.1"); commonListResultStep.setStep2("step3.2"); steps.add(commonListResultStep); CommonListResultStepParcelble commonListResultStep2 = new CommonListResultStepParcelble(); commonListResultStep2.setStep1("step4.1"); commonListResultStep2.setStep2("step4.2"); steps.add(commonListResultStep2); commonListResult.seteArrayList(steps); Log.e("insert size", "size :" + commonListResult.geteArrayList().size()); Intent intent = new Intent(MainActivity.this, ParcebleActivity.class); intent.putExtra(KEY_PARCLE, commonListResult); startActivity(intent); }public class ParcebleActivity extends ActionBarActivity {
private CommonListResultParcelble commonListResultParcelble; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_parceble); commonListResultParcelble = (CommonListResultParcelble) getIntent().getParcelableExtra( MainActivity.KEY_PARCLE); Log.e("@@@@@@@@@@@@@@@@@@@", "is null :" + (null == commonListResultParcelble)); if (null != commonListResultParcelble) { Log.e("ParcebleActivity", commonListResultParcelble.getaString() + "\n ArrayList<String> :" + commonListResultParcelble.getdStrings().toString() + "\n ArrayList<Object>:" + commonListResultParcelble.geteArrayList().get(0).getStep1()); int size = commonListResultParcelble.geteArrayList().size(); Log.e("size", "size :" + size); for (int i=0;i<size ; i++) { CommonListResultStepParcelble stepParcelble = commonListResultParcelble.geteArrayList().get(i); Log.e("Step", "1 :" + stepParcelble.getStep1() + " 2:" + stepParcelble.getStep2()); } } }