SamRowley
SamRowley

Reputation: 3485

Trouble using parcels to send Object of unknown datatype

I asked a question the other day regarding sending an object to an activity using an intent as a parcel but I am unsure how to do it in my situation. I have a variable of type object Object x; which is set with something like this: x = edit.getText().toString(); and in this instance x becomes a String object but I also have it able to set x as both an Integer and an SQLDate type. Looking at examples of how to send an object as a parcel it seems to me you have to know what the datatype is before hand even for custom datatypes. Any help with this will be greatly appreciated as i'm completely stuck on this.

Flow is:

Object x; - is created.

x = String object||Integer object||sqldate object - x is assigned a value

i.putExtra("object", x); - x is sent through to the next activity after being parcelled.

Upvotes: 2

Views: 320

Answers (2)

Dave
Dave

Reputation: 6104

Rather than having an Object reference that can be one of 3 other different data-types, I'd suggest making a wrapper class that implements Parcelable that stores the data for you. If you're passing this data around a lot, it will make your life much simpler.

Upvotes: 1

Peter Lillevold
Peter Lillevold

Reputation: 33920

The requirement on the data you pass inn is that it is serializable in some way, and yes, both String and Integer are. Also, if you're using java.sql.Date, this type inherits util.Date which in turn inherits Serializable. The slight "problem" is that Intent.putExtra does not have an overload that takes Object as parameter type. Thus, you would have to "know" which data type you want to put:

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);
}

Upvotes: 2

Related Questions