Yes, you can pass a null
to the Parcel.writeString(String)
method.
When you read it out again with Parcel.readString()
, you will get a null
value out.
For example, assume you have a class with the following fields in it:
public class Test implements Parcelable {
public final int id;
private final String name;
public final String description;
...
You create the Parcelable
implementation like this (using Android Studio autoparcelable tool):
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(id);
dest.writeString(null); // NOTE the null value here
dest.writeString(description);
}
protected Test(Parcel in) {
id = in.readInt();
name = in.readString();
description = in.readString();
}
When running this code, and passing a Test
object as a Parcelable extra in an Intent
, 2 points become apparent:
- the code runs perfectly without any
NullPointerException
- the deserialised
Test
object has a value name == null
You can see similar info in the comments to this related question: