2017-05-31 2 views
0

Ich muss einen Klick-Listener für eine bestimmte Karte, mit Recycling-Ansicht und Kartenlayout festlegen, für jedes Element muss ich ein bestimmtes Zeug tun, wie kann ich das schaffen, ich arleady erstellt der benutzerdefinierte Adapter, aber der Klick funktioniert noch nicht.Klicken Sie auf Listener für eine bestimmte Karte Recycle View

Adapter

package com.example.afcosta.inesctec.pt.android.Adapters; 

import android.content.Context; 
import android.media.Image; 
import android.support.v7.widget.RecyclerView; 
import android.util.Log; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.CompoundButton; 
import android.widget.ImageView; 
import android.widget.TextView; 

import com.example.afcosta.inesctec.pt.android.R; 
import com.example.afcosta.inesctec.pt.android.models.Family; 
import com.example.afcosta.inesctec.pt.android.models.Photo; 
import com.squareup.picasso.Picasso; 

import java.util.ArrayList; 

/** 
* Created by FilipeCosta on 29/05/2017. 
*/ 

public class FamilyLibraryAdapter extends RecyclerView.Adapter<FamilyLibraryAdapter.ViewHolder> { 

    private OnItemClickListener listener; 

    private ArrayList<Family> families; 
    private Context context; 

    public interface OnItemClickListener { 
     void onRowClick(int position,String name, int id, View view); 
    } 

    public FamilyLibraryAdapter(Context context, ArrayList<Family> families,OnItemClickListener listener) { 
     this.families = families; 
     this.context = context; 
     this.listener = listener; 
    } 

    @Override 
    public FamilyLibraryAdapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { 
     View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.activity_library_families_row, viewGroup, false); 
     return new ViewHolder(view); 
    } 


    @Override 
    public void onBindViewHolder(final FamilyLibraryAdapter.ViewHolder viewHolder, final int i) { 
     viewHolder.name.setText(families.get(i).getName()); 

     String urlFoto = "http://10.0.2.2:3000" + families.get(i).getPath(); 


     Picasso.with(context) 
       .load(urlFoto) 
       .resize(400, 400) 
       .into(viewHolder.img); 

     viewHolder.itemView.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Log.d("ENTERED","ENTERED"); 
       if (listener != null) { 
        Log.d("ENTERED","ENTERED"); 
        listener.onRowClick(viewHolder.getAdapterPosition(),families.get(i).getName(), families.get(i).getId(), v); 
       } 
      } 
     }); 
    } 

    @Override 
    public int getItemCount() { 
     return families.size(); 
    } 

    public class ViewHolder extends RecyclerView.ViewHolder{ 
     private TextView name; 
     private ImageView img; 
     public ViewHolder(View view) { 
      super(view); 
      name = (TextView) view.findViewById(R.id.namePlant); 
      img = (ImageView) view.findViewById(R.id.thumbnail); 
     } 
    } 


} 
+0

hier setzen Sie Ihre Aktivitätsklasse –

+0

Onclick Zuhörer in viewholder Klasse implementieren. –

+0

Kein _Log.d ("ENTER", "ENTER"); _? – Piyush

Antwort

0
public class EventsAdapter extends RecyclerView.Adapter<EventsAdapter.EventsViewHolder> { 

    public static Context context; 
    public FragmentManager fragmentManager; 
    ArrayList<EventsItem> eventsList; 

    public EventsAdapter(ArrayList<EventsItem> arrayList, Context context, FragmentManager fragmentManager) { 
     this.eventsList=arrayList; 
     this.context = context; 
     this.fragmentManager = fragmentManager; 
    } 



    @Override 
    public int getItemCount() { 
     return eventsList.size(); 
    } 

    @Override 
    public void onBindViewHolder(EventsViewHolder contactViewHolder, int i) { 

     final EventsItem item=eventsList.get(i); 
     //String event = item.getEvent_name().substring(0, 1).toUpperCase() + item.getEvent_name().substring(1).toLowerCase(); 
     contactViewHolder.b_name.setText(item.getEvent_name()); 
     Glide.with(context) 
       .load(UrlFactory.Image_Url+item.getEvent_image().replace(" ","%20")).into(contactViewHolder.back); 
     contactViewHolder.card.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent intent=new Intent(context,Events_Details_Activity.class); 
       intent.putExtra("e_id",item.getEvent_id()); 
       context.startActivity(intent); 
      } 
     }); 
     contactViewHolder.desc.setText(""+item.getEvent_description()); 

      contactViewHolder.date.setText(""+item.getEvent_date()); 



    } 


    @Override 
    public EventsViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { 
     View itemView = LayoutInflater. 
       from(viewGroup.getContext()). 
       inflate(R.layout.events_items_row, viewGroup, false); 
     return new EventsViewHolder(itemView); 
    } 
    class EventsViewHolder extends RecyclerView.ViewHolder { 
     protected TextView b_name,desc,date; 
     ImageView back; 
     CardView card; 

     public EventsViewHolder(View v) { 
      super(v); 
      b_name = (TextView) v.findViewById(R.id.tvevent_name); 
      desc = (TextView) v.findViewById(R.id.tveventdetail); 
      date = (TextView) v.findViewById(R.id.tveventdate); 
      back= (ImageView) v.findViewById(R.id.rleventimage); 
      card= (CardView) v.findViewById(R.id.card_view); 
     } 

    /*@Override 
    public void onClick(View v) { 
     Fragment fragment = new BusinessFragment(); 
     FragmentManager fragmentManager = ((Activity)context).getFragmentManager(); 
     fragmentManager.beginTransaction().replace(R.id.container_body, fragment) 
       .commit(); 

    }*/ 

    } 
Verwandte Themen