android页面间传递对象
16lz
2021-01-23
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;
}
}
传递值的时候这样来传递:
[java] view plain copy- <spanstyle="white-space:pre"></span>Intentintent=newIntent();
- ShopDatashopData=(ShopData)mAdapter.getItem(position);
- //intent.putExtra("detail",shopData);
- Bundlebundle=newBundle();
- bundle.putSerializable("shop",shopData);
- intent.putExtra("detail",shopData);
- intent.setClass(MainActivity.this,DetailShopActivity.class);
- MainActivity.this.startActivity(intent);
- <spanstyle="white-space:pre"></span>Intentintent=getIntent();
- //ShopDatadata=intent.getParcelableExtra("detail");
- ShopDatadata=(ShopData)intent.getSerializableExtra("detail");
对于第二种方式: [java] view plain copy
- importandroid.os.Parcel;
- importandroid.os.Parcelable;
- publicclassShopDataimplementsParcelable{
- publicStringshopId;
- publicStringname;
- publicStringurl;
- publicStringinfo;
- publicShopData(Parcelin){
- readFromParcel(in);
- }
- publicShopData(){
- }
- publicstaticfinalParcelable.Creator<ShopData>CREATOR=newParcelable.Creator<ShopData>(){
- publicShopDatacreateFromParcel(Parcelin){
- returnnewShopData(in);
- }
- publicShopData[]newArray(intsize){
- returnnewShopData[size];
- }
- };
- @Override
- publicintdescribeContents(){
- return0;
- }
- @Override
- publicvoidwriteToParcel(Parceldest,intflags){
- dest.writeString(shopId);
- dest.writeString(name);
- dest.writeString(url);
- dest.writeString(info);
- }
- publicvoidreadFromParcel(Parcelin){
- shopId=in.readString();
- name=in.readString();
- url=in.readString();
- info=in.readString();
- }
- }
传递的时候这样写: [java] view plain copy
- <spanstyle="white-space:pre"></span>Intentintent=newIntent();
- ShopDatashopData=(ShopData)mAdapter.getItem(position);
- intent.putExtra("detail",shopData);
- intent.putExtra("detail",shopData);
- intent.setClass(MainActivity.this,DetailShopActivity.class);
- MainActivity.this.startActivity(intent);
- <spanstyle="white-space:pre"></span>Intentintent=getIntent();
- ShopDatadata=intent.getParcelableExtra("detail");
更多相关文章
- Android(三)Android SDK无法更新解决方式
- Android ProgressDialog 最佳处理方式
- Android 轮询实现的三种方式
- android studio 3.1 Android Device Monitor 新的启动方式
- Android不同层次开启硬件加速的方式
- Android 的 Button 按钮实现的两种方式