Это автоматическая реализация Parcelable
, созданная Android Studio. Это так или иначе, всегда игнорирует resultCode
, который имеет тип Integer
Почему java.lang.Integer игнорируется в автоматическом Parcelable реализации Android Studio?
public class TestParceable implements Parcelable {
private String message;
private Integer resultCode; //an Integer
protected TestParceable(Parcel in) {
message = in.readString();
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(message);
}
@Override
public int describeContents() {
return 0;
}
public static final Creator<TestParceable> CREATOR = new Creator<TestParceable>() {
@Override
public TestParceable createFromParcel(Parcel in) {
return new TestParceable(in);
}
@Override
public TestParceable[] newArray(int size) {
return new TestParceable[size];
}
};
}
С другой стороны, если я изменить тип resultCode
к int
, автоматическая Parcelable
реализация считает.
public class TestParceable implements Parcelable {
private String message;
private int resultCode; //an int
protected TestParceable(Parcel in) {
message = in.readString();
resultCode = in.readInt();
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(message);
dest.writeInt(resultCode);
}
@Override
public int describeContents() {
return 0;
}
public static final Creator<TestParceable> CREATOR = new Creator<TestParceable>() {
@Override
public TestParceable createFromParcel(Parcel in) {
return new TestParceable(in);
}
@Override
public TestParceable[] newArray(int size) {
return new TestParceable[size];
}
};
Я пропустил что-то здесь или это и ошибка Android Studio?
Я предполагаю, что это ошибка Android Studio, хотя на данный момент я не вижу в ней проблемы. – CommonsWare
Последнее, что я проверил, Android Studio не предоставляет генератор кода Parcelable, и нам приходилось использовать такие инструменты, как https://github.com/mcharmas/android-parcelable-intellij-plugin. Я что-то упустил? –
Я использую AS 2.2.3 –