У меня настроено recyclerView
с моим adapter.
. Я использовал interface
, чтобы прослушивать события щелчка, которые помогают мне определить положение и вид каждого элемента.
Однако мне также необходимо получить доступ к элементам array
внутри метода onBindViewHolder
. Есть ли способ сделать этот метод доступным?
Интерфейс
public interface ItemClickListener {
void onItemClick(View view, EpisodeAdapter.ViewHolder holder, int position);
}
Адаптер
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
final Episode episode = postList.get(position);
final String title = episode.getTitle();
final Long timeStamp = postList.get(position).getTimestamp();
holder.setTitle(title);
//how to make this method and items accessible by my activity
}
@Override
public int getItemCount() {
return postList.size();
}
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
private View mView;
private CardView mParent;
private TextView mTitle, mMonth, mDate;
public ViewHolder(View itemView) {
super(itemView);
mView = itemView;
mTitle = mView.findViewById(R.id.title);
mMonth = mView.findViewById(R.id.month);
mDate = mView.findViewById(R.id.date);
mParent = mView.findViewById(R.id.parentView);
itemView.setOnClickListener(this);
}
public void setTitle(String text){
mTitle = mView.findViewById(R.id.title);
mTitle.setText(text);
}
public void setDate(String text){
mDate = mView.findViewById(R.id.date);
mDate.setText(text);
}
public void setMonth(String text){
mMonth = mView.findViewById(R.id.month);
mMonth.setText(text);
}
@Override
public void onClick(View v) {
if (itemClickListener != null) {
itemClickListener.onItemClick(v, getAdapterPosition());
}
}
}
private ItemClickListener itemClickListener;
public void setOnItemClickListener(ItemClickListener mItemClickListener) {
this.itemClickListener = mItemClickListener;
}
}
Активность
adapter.setOnItemClickListener((view, position) -> {
//only view and position available. how to access view holder items
}