java - 使用包裹发送未知数据类型的对象时出现问题

标签 java android parcelable

前几天我问了一个关于使用 Intent 作为包裹将对象发送到 Activity 的问题,但我不确定在我的情况下如何做到这一点。我有一个对象 Object x; 类型的变量,其设置如下:x = edit.getText().toString(); 在本例中 x 变为一个 String 对象,但我也可以将 x 设置为 Integer 和 SQLDate 类型。查看如何将对象作为包裹发送的示例,在我看来,即使对于自定义数据类型,您也必须事先知道数据类型是什么。任何有关这方面的帮助将不胜感激,因为我完全陷入困境。

流程是:

对象 x; - 创建。

x = 字符串对象||整数对象||sqldate 对象 - x 被分配了一个值

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

最佳答案

对传递给 inn 的数据的要求是它可以以某种方式序列化,是的,StringInteger 都是可序列化的。另外,如果您使用 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/

相关文章:

java - Android- 未找到 R.java 文件

具有多行自动换行的Android EditText

java - 是否有与 SignalR 等效的 Java?

java - 具有嵌套属性的 JPA MapKey

java - 如何制作无法编辑的EditText?

android - 由于错误 -2147483641,无法将 CursorWindow 写入 Parcel

android - 自定义模式类中的 Parcelable 抛出 StackOverflow 错误

android - Proguard 与 Parceler 和 Realm

java - 如何处理一行并从中获取关键词

java - 求平均值、最小值、最大值和范围