android传递对象有两种方式:
一种是Serializable和Parcelable
对于第一种方式:
import java.io.Serializable;
public class ShopData implements Serializable {
public String shopId;
public String name;
public String url;
public String info;
public String getShopId() {
return shopId;
}
public void setShopId(String shopId) {
this.shopId = shopId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
}
传递值的时候这样来传递:
<span style="white-space:pre"> </span>Intent intent = new Intent();
ShopData shopData = (ShopData)mAdapter.getItem(position);
// intent.putExtra("detail", shopData);
Bundle bundle = new Bundle();
bundle.putSerializable("shop", shopData);
intent.putExtra("detail", shopData);
intent.setClass(MainActivity.this, DetailShopActivity.class);
MainActivity.this.startActivity(intent);
取值的时候:
<span style="white-space:pre"> </span>Intent intent = getIntent();
// ShopData data = intent.getParcelableExtra("detail");
ShopData data = (ShopData)intent.getSerializableExtra("detail");
对于第二种方式:
import android.os.Parcel;
import android.os.Parcelable;
public class ShopData implements Parcelable{
public String shopId;
public String name;
public String url;
public String info;
public ShopData(Parcel in) {
readFromParcel(in);
}
public ShopData() {
}
public static final Parcelable.Creator<ShopData> CREATOR = new Parcelable.Creator<ShopData>() {
public ShopData createFromParcel( Parcel in ){
return new ShopData(in);
}
public ShopData[] newArray( int size){
return new ShopData[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(shopId);
dest.writeString(name);
dest.writeString(url);
dest.writeString(info);
}
public void readFromParcel( Parcel in ){
shopId = in.readString();
name = in.readString();
url = in.readString();
info = in.readString();
}
}
传递的时候这样写:
<span style="white-space:pre"> </span>Intent intent = new Intent();
ShopData shopData = (ShopData)mAdapter.getItem(position);
intent.putExtra("detail", shopData);
intent.putExtra("detail", shopData);
intent.setClass(MainActivity.this, DetailShopActivity.class);
MainActivity.this.startActivity(intent);
<span style="white-space:pre"> </span>Intent intent = getIntent();
ShopData data = intent.getParcelableExtra("detail");