我想在Activities之间发送一个对象。阅读本文后我得出结论,使用Parcelable是最好的方式,因为它对性能的影响最小。我想这样做的原因是因为我需要从网络下载数据来创建一个Object,所以我不想继续下载数据。
但是,为了使用Parcel,该类需要实现Parcelable。当我试图发送一个在库中定义的对象时,我无法编辑该类以包含它。
解决困境的最佳方法是什么?
我尝试过扩展库类并实现Parcelable但是因为ClassCastException而失败了。我也看到提到我应该创建一个Parcelable类来包装我的库类并以这种方式发送它?
谢谢!
答案 0 :(得分:0)
您是否尝试使用Bundle?
例如,如果您有parcelable类User
Bundle bundle = new Bundle();
List<User> users = new ArrayList<User>();
String userName = user.setUserName("some name");
boolean isOnline = user.setOnline(true);
users.add(user);
bundle.putParcelableArrayList("USER", users);
您可以将其检索为:
public ArrayList<User> getParcelableArrayList(Bundle bundle){
List<User> userList = new ArrayList<User>();
userList = bundle.getParcelableArrayList("USER");
}
答案 1 :(得分:0)
如何使用parceler library?你可以tell your Application
to parcel library classes:
@ParcelClass(LibraryParcel.class) public class AndroidApplication extends Application{ //... }
如果可行,您可以使用以下代码进行换行/解包:
Parcelable wrapped = Parcels.wrap(new Example("Andy", 42)); Example example = Parcels.unwrap(wrapped); example.getName(); // Andy example.getAge(); // 42