Ich habe eine Recycleransicht mit Karten implementiert und möchte onClick Funktionen auf jeder der Karten implementieren. Grundsätzlich habe ich zwei Klassen, nämlich die MainActivity- und die RVAdapter-Klasse.Wie kann ich im RecyclerView auf Karten klicken?
Dies ist, wie ich die Onclick-Funktion innerhalb der Adapter Klasse implementieren:
@Override
public void onBindViewHolder(final ShopViewHolder shopViewHolder, final int i) {
shopViewHolder.shopNameTV.setText(shops.get(i).name);
shopViewHolder.categoryTV.setText(shops.get(i).category);
shopViewHolder.phoneNumberTV.setText(shops.get(i).phoneNumber);
shopViewHolder.ratingsTV.setText(shops.get(i).ratings);
shopViewHolder.emailTV.setText(shops.get(i).email);
final Shop shop = shops.get(i);
shopViewHolder.shopNameTV.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Log.d("test","onclickk here" + i);
}
}) ;
}
In meiner XML-Datei, die die Karten enthält:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:onClick="onBindViewHolder"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/shopnameTV"
/>
das Problem jedoch ist, dass wenn ich auf die Karten, Es führt mich zu dem Fehler, der besagt, dass onBindViewHolder nicht in der Hauptaktivitätsklasse ist.
Wie löse ich diesen Fehler? Oder wie übergebe ich die Variablen nach onClick an die RVAdapter-Klasse anstatt an die Haupt-Aktivitätsklasse?