I'm trying to make a transition between my RecyclewView and a activity when onClick, but the Adapter doesn't let it. Any suggestion in how could I solve this problem?
My onBindViewHolder that contains the target onClick method which I want to implement the transition animation:
public void onBindViewHolder(@NonNull DataRVAdapter.ViewHolder holder, int position) {
// setting data to our views in Recycler view items.
DataModal modal = dataModalArrayList.get(position);
holder.bookName.setText(modal.getName());
// we are using Picasso to load images
// from URL inside our image view.
Picasso.get().load(modal.getCover()).placeholder(R.drawable.book_placeholder).into(holder.bookCover);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// setting on click listener
// for our items of recycler items.
//Toast.makeText(context, "Clicked item is " + modal.getName(), Toast.LENGTH_SHORT).show();
// open activity with our book information
Intent intent = new Intent(holder.itemView.getContext(), BookDetailsActivity.class);
ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation(holder.itemView.getContext(),holder.bookCover, ViewCompat.getTransitionName(holder.bookCover));
intent.putExtra("name", dataModalArrayList.get(position).getName());
intent.putExtra("cover", dataModalArrayList.get(position).getCover());
intent.putExtra("author", dataModalArrayList.get(position).getAuthor());
intent.putExtra("date", dataModalArrayList.get(position).getDate());
intent.putExtra("publisher", dataModalArrayList.get(position).getPublisher());
intent.putExtra("pages", dataModalArrayList.get(position).getPages());
intent.putExtra("genre", dataModalArrayList.get(position).getGenre());
intent.putExtra("isbn", dataModalArrayList.get(position).getIsbn());
intent.putExtra("synopsis", dataModalArrayList.get(position).getSynopsis());
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
holder.itemView.getContext().startActivity(intent, optionsCompat.toBundle());
}
});
}
And here's my ViewHolder:
// creating variables for our
// views of recycler items.
private TextView bookName;
private ImageView bookCover;
public ViewHolder(@NonNull View itemView) {
super(itemView);
// initializing the views of recycler views.
bookName = itemView.findViewById(R.id.idTVtext);
bookCover = itemView.findViewById(R.id.idIVimage);
}
}
These codes are all inside my RecyclewView Adapter
So thank you in advance!