android反序列化对象?

android反序列化对象?,android,android-intent,Android,Android Intent,如何反序列化此类型: public Intent putExtra(String name, Serializable value) 例如: intent.putExtra("activityToPass", GoToThisActivity.class); ??? getIntent().getExtras.getSerializable("activityToPass"); 如何做到这一点请 请帮忙 如果要将自定义对象从一个活动传递到另一个活动,首先必须有自定义对象的类来实现jav

如何反序列化此类型:

public Intent putExtra(String name, Serializable value)
例如:

 intent.putExtra("activityToPass", GoToThisActivity.class);
 ???
 getIntent().getExtras.getSerializable("activityToPass");
如何做到这一点请


请帮忙

如果要将自定义对象从一个活动传递到另一个活动,首先必须有自定义对象的类来实现
java.io.Serializable

public class SomeObject implements Serializable {
    private String name;
    public SomeObject (final String name) {
        this.name = name;
    }
    [...]
}

final SomeObject myExtra = new SomeObject("any name");
然后,您可以将此myExtra添加到调用新的
活动的意图中:

final Intent intent = new Intent(this, GoToThisActivity.class);
intent.putExtra("serializedExtra", myExtra);
startActivity(intent);
在您的
GoToThisActivity
class'
onCreate
方法中,您可以将此额外内容提取为:

final Intent intent = getIntent();
if (intent.hasExtra("serializedExtra"))
    final SomeObject myExtra= (SomeObject)intent.
        getSerializableExtra("serializedExtra");
    [...]
}
现在,新活动中有了自定义对象

更新1:将类传递给具有
意图的其他活动

如果要将
实例传递给意图:

intent.putExtra("classExtra", GoToThisActivity.class);
并在其他活动中对其进行反序列化:

if (intent.hasExtra("classExtra"))
{
    final Class<?> classExtra= (Class<?>)intent.
        getSerializableExtra("classExtra");
    [...]
}
您在
意图中添加了额外的内容

intent.putExtra("buttonPicks", new ButtonPick[]
    {ButtonPick.DELETE,ButtonPick.EDIT});
在另一个活动中,将其反序列化:

if (intent.hasExtra("buttonPicks"))
{
    final Object[] buttonPicks= (Object[])intent.
        getSerializableExtra("buttonPicks");
        [...]
}
您必须将数组强制转换为
Object[]
,而不考虑原始的
按钮图标[]

数组中的元素有其正确的类型,因此

{ButtonPicks.EDIT,ButtonPicks.DELETE}

成员。

您需要单独强制转换它们。

通过serializable传递一个类怎么样?我不想再创建任何自定义对象。示例:intent.putExtra(“activityToPass”,GoToThisActivity.class),因为对于java,GoToThisActivity.class是可序列化的!谢谢。对不起,我刚才错误地跳过了那个部分,但请看我通过一门课程的更新。我会试试的,雷卡泽鲁大师!最后一个rekaszeru老师,如何反序列化这个,到目前为止没有运气:intent.putExtra(“buttonPicks”,new ButtonPick[]{ButtonPick.DELETE,ButtonPick.EDIT})//其中ButtonPick是一个枚举。我需要为此创建一个自定义对象吗?我发布了一个新的更新,其中包含一个关于如何反序列化数组的示例,我希望它对您有用。
if (intent.hasExtra("buttonPicks"))
{
    final Object[] buttonPicks= (Object[])intent.
        getSerializableExtra("buttonPicks");
        [...]
}