1.Serializableide
特色,方便簡單
this
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;
}
}get
MainActivity----->SerializableActivitystring
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);
}
it
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());
}
}io
2.Parcelableclass
特色,稍微複雜,可是內存效率高
效率
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];
}
};
}List
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()); } } }