前几天我问了一个关于使用 Intent 作为包裹将对象发送到 Activity 的问题,但我不确定在我的情况下如何做到这一点。我有一个对象 Object x;
类型的变量,其设置如下:x = edit.getText().toString();
在本例中 x 变为一个 String 对象,但我也可以将 x 设置为 Integer 和 SQLDate 类型。查看如何将对象作为包裹发送的示例,在我看来,即使对于自定义数据类型,您也必须事先知道数据类型是什么。任何有关这方面的帮助将不胜感激,因为我完全陷入困境。
流程是:
对象 x;
- 创建。
x = 字符串对象||整数对象||sqldate 对象
- x 被分配了一个值
i.putExtra("object", x);
- x 被打包后发送到下一个 Activity 。
最佳答案
对传递给 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);
}
关于java - 使用包裹发送未知数据类型的对象时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4645233/