Was ich im Grunde versuche, ist, die Objekte, die in der Recycler-Ansicht angezeigt werden, an eine bestimmte TextView-ID anklickbar zu machen, weil ich ein Programm mache, das ein Albumcover und seinen Titel daneben in einer Liste anzeigt. Ich muss in der Lage sein, auf jedes der Kästchen in der Recycler-Ansicht zu klicken und ein TextView mit den anderen Informationen (Autor, Veröffentlichungsdatum, Hits usw.) zu öffnen, wenn darauf geklickt wird, und dann eine Zurück-Schaltfläche (wenn möglich), um zur Albumliste zurückzukehren. Ich habe mir das stundenlang angesehen und kann nicht herausfinden, wie man einen OnclickListener dazu bringt, dafür zu arbeiten. Wenn Sie wissen, wie oder irgendwelche Vorschläge haben, seien Sie froh, sie zu hören. Vielen Dank!Wie verwenden Sie einen OnClickListener in einer Recycler-Ansicht?
package com.albumlist.albumlist;
import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private AlbumData[] itemsData;
public MyAdapter(AlbumData[] itemsData){
this.itemsData = itemsData;
}
public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private TextView txtViewTitle;
private ImageView imgViewIcon;
public ViewHolder(View itemLayoutView) {
super(itemLayoutView);
itemLayoutView.setOnClickListener(this);
txtViewTitle = (TextView) itemLayoutView.findViewById(R.id.album_title);
imgViewIcon = (ImageView) itemLayoutView.findViewById(R.id.album_icon);
}
@Override
public void onClick(View v) {
}
}
@Override
public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,int viewType) {
View itemLayoutView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.data_layout, null);
ViewHolder viewHolder = new ViewHolder(itemLayoutView);
return viewHolder;
}
@Override
public void onBindViewHolder(ViewHolder viewHolder, int position) {
viewHolder.txtViewTitle.setText(itemsData[position].getTitle());
viewHolder.imgViewIcon.setImageResource(itemsData[position].getImageUrl());
}
@Override
public int getItemCount() {
return itemsData.length;
}
}
Stellen Sie den Klick Zuhörer in Ihrer Ansicht Halter. Definieren Sie eine Listener-Schnittstelle und übergeben Sie diese zuerst an den 'Adapter' und dann an den' ViewHolder' in 'onCreateViewHolder'. Die Verarbeitung von Klicks erfolgt genau so wie in einer "ListView". Selbst vor dem 'RecyclerView' sollten Sie die 'OnItemClickListener'-Callbacks des' ListView' nicht verwenden, weshalb sie im' RecyclerView' nicht mehr vorhanden sind. –