В основном у меня есть 4 рециркулятора, каждый с разными идентификаторами, я не хочу вдаваться в подробности причин, по которым я хочу, чтобы это произошло, поэтому мне нужно, чтобы при нажатии на любой элемент рециклера я мог получитьИдентификатор RECYCLER, а не элемент нажал.Это возможно?Я думаю, что это можно сделать с помощью адаптера, но я не знаю как.Это то, что я получил до сих пор, но itemView - это вид ячейки, а не переработчика.
РЕДАКТИРОВАТЬ: я решил свою проблему другим способом (так что не смотрите на это), мне просто любопытно, еслиможно получить идентификатор клика, а не пункт клика.
public class AlbumAdapter extends RecyclerView.Adapter {
private List<Album> albumLista;
private NotificadorAlbumCelda notificadorAlbumCelda;
public AlbumAdapter(List<Album> albumLista, NotificadorAlbumCelda notificadorAlbumCelda) {
this.albumLista = albumLista;
this.notificadorAlbumCelda = notificadorAlbumCelda;
}
public void setAlbumLista(List<Album> albumLista) {
this.albumLista = albumLista;
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View view = inflater.inflate(R.layout.celda_recycler_scroll, parent, false);
ViewHolderAlbum viewHolderAlbum = new ViewHolderAlbum(view);
return viewHolderAlbum;
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
Album album = albumLista.get(position);
ViewHolderAlbum viewHolderAlbum = (ViewHolderAlbum) holder;
viewHolderAlbum.cargarAlbum(album);
}
@Override
public int getItemCount() {
if (albumLista != null) {
return albumLista.size();
} else {
return 0;
}
}
public class ViewHolderAlbum extends RecyclerView.ViewHolder {
private TextView textViewNombreAlbum;
private TextView textViewNombreArtista;
private ImageView imagenAlbum;
public ViewHolderAlbum(final View itemView) {
super(itemView);
textViewNombreAlbum = itemView.findViewById(R.id.titulo_fragment_album);
textViewNombreArtista = itemView.findViewById(R.id.titulo_fragment_artista);
imagenAlbum = itemView.findViewById(R.id.imagen_fragment_album);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//here is where I need to get the id
int idRecycler = itemView.getId();
int posicionAlbumClickeado = getAdapterPosition();
Album album = albumLista.get(posicionAlbumClickeado);
notificadorAlbumCelda.notificarCeldaClickeada(album, posicionAlbumClickeado, idRecycler);
}
});
}
public void cargarAlbum(Album album) {
textViewNombreAlbum.setText(album.getTitulo());
textViewNombreArtista.setText(album.getArtista().getNombre());
imagenAlbum.setImageResource(album.getImagenAlbum());
}
}
public interface NotificadorAlbumCelda {
public void notificarCeldaClickeada(Album album, int posicion, int idRecycler);
}
}