【发布时间】:2017-02-12 16:04:23
【问题描述】:
我已经从代码中添加了片段,并在创建它们时将数据从活动传递到了片段,现在当我编写代码以从该片段转移到其他一些活动时,我得到了...java.lang.RuntimeException:Parcel : 无法编组值
这是我在 Main 类中用来创建片段的代码
Log.e("list=",data.toString());
fragments.add(MyFragment.newInstance(data,values.toString(),response1));
data=new ArrayList<>();
pageAdapter=new MyPageAdapter(getSupportFragmentManager(),fragments);
pager.setAdapter(pageAdapter);
这是真正的 Fragment 类
public class MyFragment extends Fragment {
public static final String EXTRA_MESSAGE = "EXTRA_MESSAGE";
public static final String EXTRA_MESSAGE1 = "Check";
public static final String EXTRA_MESSAGE2 = "Check1";
String order_id;
private ProgressDialog pDialog;
SwipeMenuListView listView;
public static final MyFragment newInstance(List<Data> data,String check,String response)
{
MyFragment f = new MyFragment();
Bundle bdl = new Bundle(3);
bdl.putSerializable(EXTRA_MESSAGE, (Serializable) data);
bdl.putString(EXTRA_MESSAGE1, check);
bdl.putString(EXTRA_MESSAGE2, response);
f.setArguments(bdl);
return f;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
List<Data> message = (List<Data>) getArguments().getSerializable(EXTRA_MESSAGE);
final String show = getArguments().getString(EXTRA_MESSAGE1);
final String responseaa=getArguments().getString(EXTRA_MESSAGE2);
}
}
现在在 OnCreateView 中,当我使用意图移动到另一个活动时,它会给出 java.lang.RuntimeException: Parcel: unable to marshal value
这是日志
java.lang.RuntimeException: Parcel: 无法编组值 com.sindhibandhan.digitalstrikers.dynamicfragment.Data@30898801 在 android.os.Parcel.writeValue(Parcel.java:1337) 在 android.os.Parcel.writeList(Parcel.java:711) 在 android.os.Parcel.writeValue(Parcel.java:1284) 在 android.os.Parcel.writeArrayMapInternal(Parcel.java:638) 在 android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1313) 在 android.os.Bundle.writeToParcel(Bundle.java:1096) 在 android.os.Parcel.writeBundle(Parcel.java:663) 在 android.support.v4.app.FragmentState.writeToParcel(Fragment.java:142) 在 android.os.Parcel.writeTypedArray(Parcel.java:1191) 在 android.support.v4.app.FragmentManagerState.writeToParcel(FragmentManager.java:396) 在 android.os.Parcel.writeParcelable(Parcel.java:1357) 在 android.os.Parcel.writeValue(Parcel.java:1262) 在 android.os.Parcel.writeArrayMapInternal(Parcel.java:638) 在 android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1313) 在 android.os.Bundle.writeToParcel(Bundle.java:1096) 在 android.os.Parcel.writeBundle(Parcel.java:663) 在 android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:2992) 在 android.app.ActivityThread$StopInfo.run(ActivityThread.java:3450) 在 android.os.Handler.handleCallback(Handler.java:810) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:189) 在 android.app.ActivityThread.main(ActivityThread.java:5529) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:956) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:751)
【问题讨论】:
-
请给我看看你的代码
-
@ArthurKorchagin..现在请看代码
-
使用堆栈跟踪也显示 logcat 错误消息
-
@VygintasB 现在显示了