1

Bir RecyclerView bağdaştırıcısı yaptım ve bu bağdaştırıcıyı geri dönüştürücü görünümünde verileri şişirmek için bu bağdaştırıcıyı kullanarak, daha önce ListView onItemClickListner genel yöntemini kullandım, ancak RecyclerView, Plese herkes ile çalıştığı görülmüyorAndroid - Recycler View onClick Listener çalışmıyor

public class TimeAdaptra extends  
RecyclerView.Adapter<TimeAdaptra.RecyclerViewHolder> { 
ArrayList<String> time, status; 

public TimeAdaptra(ArrayList<String> title, ArrayList<String> dec) { 
    this.time = title; 
    this.status = dec; 

} 

@Override 
public RecyclerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.time_slice, parent, false); 
    RecyclerViewHolder recyclerViewHolder = new RecyclerViewHolder(view); 
    return recyclerViewHolder; 
} 

@Override 
public void onBindViewHolder(RecyclerViewHolder holder, int position) { 
    holder.myTitle.setText(time.get(position)); 
    holder.mydec.setText(status.get(position)); 
} 

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

public static class RecyclerViewHolder extends RecyclerView.ViewHolder { 
    TextView myTitle; 
    TextView mydec; 

    public RecyclerViewHolder(View view) { 
     super(view); 
     myTitle = (TextView) view.findViewById(R.id.timee); 
     mydec = (TextView) view.findViewById(R.id.status); 
    } 
} 
} 

Ve böyle enflasyonu yapıyorum: Bu

Benim RecyclerView Adaptör sınıfı ile bana yardımcı olan

public class Slots extends AppCompatActivity { 
RecyclerView recyclerView; 
RecyclerView.Adapter adapter; 
RecyclerView.LayoutManager manager; 
private ArrayList<String> Time = new ArrayList<String>(); 
private ArrayList<String> Status = new ArrayList<String>(); 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_slots); 

    Time.add("18:00"); 
    Status.add("Available"); 
    recyclerView = (RecyclerView) this.findViewById(R.id.timeslice); 
    manager = new LinearLayoutManager(this); 
    recyclerView.setLayoutManager(manager); 
    recyclerView.setHasFixedSize(true); 
    adapter = new TimeAdaptra(Time, Status); 
    recyclerView.setAdapter(adapter); 
    adapter.notifyDataSetChanged(); 
+0

Bağdaştırıcı sınıfı görünümünde görünümünüz için dinleyicileri tıklatır – Raghunandan

cevap

1

RecyclerViewHolder böyle View.OnClickListener uygulamak olun:

public static class RecyclerViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{ 
     TextView myTitle; 
     TextView mydec; 

     public RecyclerViewHolder(View view) { 
      super(view); 
      myTitle = (TextView) view.findViewById(R.id.timee); 
      mydec = (TextView) view.findViewById(R.id.status); 
      myTitle.setOnClickListener(this); 
      mydec.setOnClickListener(this); 

     } 

      @Override 
      public void onClick(View v) { 
       switch (v.getId()) { 
        case R.id.timee: 
        // do task 
        break; 
        case R.id.status: 
        //do task 
        break; 
        } 
      } 
    } 

sonra ona senin şişirme olan xml ve setOnClickListener() kök düzeni id almalısınız listenin her öğe üzerine tıklayın istiyorsanız.