我试图在片段之间传递category[]
(类别是模型)结构.....
我可以使用
传递ArrayList<String>
fragment = new FrgAddItemInfo();
fragment.setArguments(mBundle);
fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.addToBackStack(FrgAddItemInfo.class.getSimpleName());
fragmentTransaction.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out);
fragmentTransaction.add(R.id.container, fragment, FrgAddItemInfo.class.getSimpleName());
category[]
答案 0 :(得分:3)
尝试创建片段的构造函数并使用它在它们之间传递对象。
在片段FrgAddItemInfo中,添加以下内容:
/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @param category Parameter 1.
* @return A new instance of fragment FrgAddItemInfo.
*/
public static FrgAddItemInfo newInstance(Category[] category) {
FrgAddItemInfonewInstance fragment = new FrgAddItemInfonewInstance();
fragment.setCategories(category);
return fragment;
}
public void setCategories(Category[] category) {
mCategory = category;
}
并将其用作
fragment = FrgAddItemInfo.newInstance(category);
fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.addToBackStack(FrgAddItemInfo.class.getSimpleName());
fragmentTransaction.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out);
fragmentTransaction.add(R.id.container, fragment, FrgAddItemInfo.class.getSimpleName());
答案 1 :(得分:3)
您的对象类别必须实现Parcelable
https://developer.android.com/reference/android/os/Parcelable.html
但是,作为一种解决方法,您可以使用Google的Gson将您的类序列化为json String并以字符串形式发送。
答案 2 :(得分:1)
如果Bundle#putParcelableArray();
实现了parcelable
Category
或者你可以在另一种情况下使用某些序列化到byte[]
到String
(例如使用JSON)。