I am trying to pass two values through Intent one is String and another is ArrayList from fragment A to Activity B through Intent. The String is passing successfully but the Arraylist is not passing and giving me a null pointer exception on Activity B's recyclerview method getitemcount's return. I have tried many ways nothing is working. Kindly check it. Thanks in Advance
Fragment's code where I am sending the data
Intent intent = new Intent(getContext(), SearchActivity.class);
intent.putParcelableArrayListExtra("data", mydatalist);
intent.putExtra("query", query);
startActivity(intent);
Activity's code where I am receiving
//GETTING THE DATA FROM FRAGMENT
Intent intent = getIntent();
datalist = intent.getParcelableArrayListExtra("data");
editText.setText(intent.getStringExtra("query"));
adapter = new SearchRecyclerAdapter(datalist, getApplicationContext());
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(adapter);
Model class
public class RecyclerviewModel implements Parcelable {
String name;
String email;
String desc;
String book;
List<String> images;
String uid;
String searching;
public RecyclerviewModel() {
}
public RecyclerviewModel(String name, String email, String desc, String book, List<String> images, String uid,String searching) {
this.name = name;
this.email = email;
this.desc = desc;
this.book = book;
this.images= images;
this.uid = uid;
this.searching = searching;
}
protected RecyclerviewModel(Parcel in) {
name = in.readString();
email = in.readString();
desc = in.readString();
book = in.readString();
images = in.createStringArrayList();
uid = in.readString();
searching = in.readString();
}
public static final Creator<RecyclerviewModel> CREATOR = new Creator<RecyclerviewModel>() {
@Override
public RecyclerviewModel createFromParcel(Parcel in) {
return new RecyclerviewModel(in);
}
@Override
public RecyclerviewModel[] newArray(int size) {
return new RecyclerviewModel[size];
}
};
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public String getBook() {
return book;
}
public void setBook(String book) {
this.book = book;
}
public List<String> getImages() {
return images;
}
public void setImages(List<String> images) {
this.images = images;
}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getSearching() {
return searching;
}
public void setSearching(String searching) {
this.searching = searching;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int i) {
parcel.writeString(name);
parcel.writeString(email);
parcel.writeString(desc);
parcel.writeString(book);
parcel.writeStringList(images);
parcel.writeString(uid);
parcel.writeString(searching);
}
}
It is giving me error on this recyclerview's method
@Override
public int getItemCount() {
return datalist.size();
}