Android Bundle无法将可序列化的对象识别为已序列化

时间:2018-12-04 23:41:46

标签: android android-intent bundle serializable

我正在尝试通过捆绑包传递可序列化的对象。

尝试在另一个Activity中检索对象时,出现错误:

  

“不兼容的类型:

     

必填:com.xxxxxx.Warmup(我的可序列化对象-xxx填充   包名称)

     

找到:java.io.Serializable”

将对象放入捆绑包的代码:

// Display the Exercise Category List by
            // starting the ExerciseCategoryMainActivity
            Intent intent;
            intent = new Intent(getContext(), ExerciseCategoryMainActivity.class);
            intent.putExtra(Warmup.class.getSimpleName(), warmup);
            startActivity(intent);

我尝试检索对象(并获取错误消息不兼容类型)的代码:

// Get the attached bundle from the intent
    Bundle extras = getIntent().getExtras();

    Warmup warmup = extras.getSerializable(Warmup.class.getSimpleName());

还有显示我的对象可序列化的代码:

public class Warmup implements Serializable {
public static final long serialVersionUID = 20180228L;

1 个答案:

答案 0 :(得分:0)

找到了我自己的答案,这很简单。

我所需要做的就是将多余的内容投射为热身:

热身热身=(热身)extras.getSerializable(Warmup.class.getSimpleName());