2

前几天我问了一个关于使用意图作为包裹将对象发送到活动的问题,但我不确定在我的情况下如何做到这一点。我有一个对象类型的变量,Object x;它是这样设置的:x = edit.getText().toString();在这种情况下,x 变成了一个 String 对象,但我也让它能够将 x 设置为 Integer 和 SQLDate 类型。查看如何将对象作为包裹发送的示例,在我看来,即使对于自定义数据类型,您也必须事先知道数据类型是什么。对此的任何帮助将不胜感激,因为我完全坚持这一点。

流程是:

Object x;- 被建造。

x = String object||Integer object||sqldate object- x 被赋值

i.putExtra("object", x);- x 被打包后被发送到下一个活动。

4

2 回答 2

2

对您传递的数据的要求 inn 是它可以以某种方式序列化,是的,两者String都是Integer。此外,如果您使用java.sql.Date,则此类型继承util.Date,而后者又继承Serializable. 轻微的“问题”是Intent.putExtra没有Object作为参数类型的重载。因此,您必须“知道”要放置的数据类型:

if (goingToUseStringObject...)
{
    // use the CharSequence overload
    i.putExtra("object", stringObject);
}
else if (goingToUseIntegerObject...)
{
    // use the int overload
    i.putExtra("object", integerObject);
}
else if (goingToUseDateObject...)
{
    // use the Serializable overload
    i.putExtra("object", dateObject);
}
于 2011-01-10T09:35:23.460 回答
1

Object我建议不要使用可以是其他 3 种不同数据类型之一的引用,而是创建一个实现Parcelable为您存储数据的包装类。如果你经常传递这些数据,它会让你的生活变得更简单。

于 2011-01-10T09:44:17.537 回答