如何从一个actvity传递对象到另一个actvity在android系统
设置如何从一个actvity传递对象到另一个actvity在android系统
ShopProductModel object=shopProductModelList.get(position);
Intent myintenet = new Intent(context, ProductDetailActivity.class);
myintenet.putExtra("object", object);
context.startActivity(myintenet);
得到
Intent intent = getIntent();
object = (ShopProductModel) intent.getParcelableExtra("object");
这个代码,我想从一个活动传递到另一个数据,但问题来了一个参数快到空时,我得到的对象:
这里是JSON对象结构:https://paste.ofcode.org/UnwVJhza7KV82uMY46KraS
在这个产品详细信息即将null我不知道我在做什么以下错误是我的模型类: https://paste.ofcode.org/BNhNCjuzGDwvU3SrbUjdz7请建议我这个有什么问题。在设置期间,productDetails中没有null,而set中的productDetails中的值为null。
,你要传递的值 - 这条线只需添加到您的新活动
String x= getIntent().getExtras().getString("object");
意味着我们在哪里获得对象? – Adevelopment
1,如果你想使用getParcelableExtra()
方法比你要implements Parcelable
你类
public class kShopProductModel implements Parcelable
发送数据像这样
ShopProductModel object=shopProductModelList.get(position);
Intent myintenet = new Intent(context, ProductDetailActivity.class);
myintenet.putExtra("object", object);
context.startActivity(myintenet);
个
检索数据
Intent intent = getIntent();
ShopProductModel object = (ShopProductModel) intent.getParcelableExtra("object");
2.,如果你想使用getSerializableExtra()
你只需要implements Serializable
到模型类kShopProductModel
@SuppressWarnings("serial")
public class kShopProductModel implements Serializable
比使用发送对象意图
ShopProductModel object=shopProductModelList.get(position);
Intent myintenet = new Intent(context, ProductDetailActivity.class);
myintenet.putExtra("object", object);
context.startActivity(myintenet);
检索
Intent intent = getIntent();
ShopProductModel object = (ShopProductModel) intent.getSerializableExtra("object");
down voter你能解释一下原因,所以我可以改进ans –
因为你是可实现的序列化,并且你使用parcelable获取值。 –
@AndyDeveloper我刚刚更新我的 –
尝试用下面的代码:
//To pass object:
intent.putExtra("MyClass", obj);
// To retrieve object in second Activity
getIntent().getSerializableExtra("MyClass");
您正在使用getParcelableExtra越来越ShopProductModel的对象,所以你必须实现Parcelable您ShopProductModel。您可以参考this link了解如何实现parcelable。
public class ShopProductModel implements Parcelable
// When you get the object.
Intent intent = getIntent();
object = (ShopProductModel) intent.getParcelableExtra("object");
OR
如果您正在使用getSerializableExtra越来越ShopProductModel的对象,所以你必须实现Serializable您ShopProductModel。您可以参考this link了解如何实现parcelable。
public class ShopProductModel implements Serializable
// When you get the object.
Intent intent = getIntent();
object = (ShopProductModel) intent.getSerializableExtra("object");
如果您实现了Parcelable,ShopProductModel看起来像这样。
public class ShopProductModel implements Parcelable
{
protected ShopProductModel(Parcel in) {
}
public static final Creator<ShopProductModel> CREATOR = new Creator<ShopProductModel>() {
@Override
public ShopProductModel createFromParcel(Parcel in) {
return new ShopProductModel(in);
}
@Override
public ShopProductModel[] newArray(int size) {
return new ShopProductModel[size];
}
};
@Override
public int describeContents()
{
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
}
}
如果你想传递一个单独的对象,然后在模型类中实现足够的序列化。做到这一点
public class ShopProductModel implements Serializable {
}
的传递
尝试getSerializable()方法instaed getParcelable的()。 – Priya
但是我们在android @Priya中使用getparcelable – Adevelopment
@Adevelopment看到我的答案先生。 –