将带有parcel的realmobject传递给activity已返回null

时间:2016-03-18 08:35:07

标签: realm parcel

任何人都可以帮我解决我的问题,将包裹的realmobject传递给另一个活动,在第二个活动中,我的对象为空?

在Activity中,我从标签中获取类Category的instatne。

        Intent intent = new Intent(context, CategoryListActivity.class);
        Category category = (Category)v.getTag();
        Log.e("Id", " "+category.getId()); //this is ok it prints 1
        Parcelable parcelable = Parcels.wrap(category);

        intent.putExtra("category", parcelable);
        startActivity(intent); 

在类CategoryListActivity中,方法onCreate是代码

Intent intent = getIntent();
Category category = Parcels.unwrap(intent.getParcelableExtra("category"));
Category category1= Parcels.unwrap(getIntent().getExtras().getParcelable("category"));
Log.e("Id 1", " "+category.getId()); //retun 0
Log.e("Id 1", " "+category1.getId()); //return 0

这个打印0并且我不知道为什么是0.任何人都有一些建议来解决这个问题吗? thx,或者如果它的necessery插入我的实体,它扩展了RealmObject我可以粘贴

1 个答案:

答案 0 :(得分:2)

除非它们是非托管或独立对象,否则不应在Parcel中发送RealmObjects。

在另一端发送ID值并查询对象更安全:https://realm.io/docs/java/latest/#intents

如果您想使用Parceler。您是否按照此处所述配置了对象:https://realm.io/docs/java/latest/#parceler