I am trying to pass a model class object in intent. For that, I made model class Parcelable. Now there are some fields that are not in DB(will add later) means now those fields are null.
The below model class is to fetch data from DB.
In the code, I was getting NullPointerExcepton for this line dest.writeLong(lastUpdateTimestamp.getTime());. So I used if condition to check null value.if (lastUpdateTimestamp != null) dest.writeLong(lastUpdateTimestamp.getTime());.
Now, this error is gone. But is it the correct way to do this in Model class?
After applying this solution, I am getting values but one value is assigned to a different field means the value of the type field is assigned to latestMessageId. Because of that type value is null. How to handle this?
public class ChatModel implements Parcelable { @DocumentId private String id; private String image; private List<String> admins, participants; public static final Creator<ChatModel> CREATOR = new Creator<ChatModel>() { @Override public ChatModel createFromParcel(Parcel in) { return new ChatModel(in); } @Override public ChatModel[] newArray(int size) { return new ChatModel[size]; } }; private String creator, latestMessageId, name, type; public ChatModel() { } private Date lastUpdateTimestamp; public ChatModel(String id, List<String> admins, List<String> participants, String creator, Date lastUpdateTimestamp, String latestMessageId, String name, String type, String image) { this.id = id; this.admins = admins; this.participants = participants; this.creator = creator; this.lastUpdateTimestamp = lastUpdateTimestamp; this.latestMessageId = latestMessageId; this.name = name; this.type = type; this.image = image; } public void setImage(String image) { this.image = image; } public void setLastUpdateTimestamp(Date lastUpdateTimestamp) { this.lastUpdateTimestamp = lastUpdateTimestamp; } public String getId() { return id; } public void setId(String id) { this.id = id; } public List<String> getAdmins() { return admins; } public void setAdmins(List<String> admins) { this.admins = admins; } public List<String> getParticipants() { return participants; } public void setParticipants(List<String> participants) { this.participants = participants; } public String getCreator() { return creator; } public void setCreator(String creator) { this.creator = creator; } protected ChatModel(Parcel in) { id = in.readString(); image = in.readString(); admins = in.createStringArrayList(); participants = in.createStringArrayList(); lastUpdateTimestamp = new Date(in.readLong()); creator = in.readString(); latestMessageId = in.readString(); name = in.readString(); type = in.readString(); } public String getLatestMessageId() { return latestMessageId; } public void setLatestMessageId(String latestMessageId) { this.latestMessageId = latestMessageId; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getImage() { return image; } public Date getLastUpdateTimestamp() { return lastUpdateTimestamp; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(id); dest.writeString(image); dest.writeStringList(admins); dest.writeStringList(participants); if (lastUpdateTimestamp != null) dest.writeLong(lastUpdateTimestamp.getTime()); dest.writeString(creator); dest.writeString(latestMessageId); dest.writeString(name); dest.writeString(type); } }
https://stackoverflow.com/questions/66667270/getting-nullpinterexception-in-parcelable-model-class-and-assigning-different-va March 17, 2021 at 01:05PM
没有评论:
发表评论