0

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();
}
James Z
  • 12,209
  • 10
  • 24
  • 44

0 Answers0