- 自定义实体实现Parcelable接口
import android.os.Parcel;
import android.os.Parcelable;
/**
* Created by HTT on 2017/10/25.
*/
public class Terminal implements Parcelable {
private String id;
private String name;
private String address;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPname() {
return pname;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
//此方法一定要实现
public static final Creator<Terminal> CREATOR = new Creator<Terminal>() {
@Override
public Terminal createFromParcel(Parcel parcel) {
Terminal ter = new Terminal();
ter.id = parcel.readString();
ter.name = parcel.readString();
ter.address = parcel.readString();
return ter;
}
@Override
public Terminal[] newArray(int i) {
return new Terminal[i];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int i) {
parcel.writeString(id);
parcel.writeString(name);
parcel.writeString(address);
}
}
- 跳转页面设置
ArrayList<Terminal> selectTers = new ArrayList<>();
Intent intent = Intent(MainActivity.this,SelectTerActivity.class);
intent.putParcelableArrayListExtra("selectTers", selectTers);
startActivity(intent);
接收页面
Intent intent = this.getIntent();
ArrayList<Terminal> selectTers = intent.getParcelableArrayListExtra("selectTers");
这样就可以传递复杂的ArrayList对象了。
参考:
Intent之对象传递(Parcelable传递对象和对象集合)
Intent之对象传递(Serializable传递对象和对象集合)
Intent传递Parcelable List对象