2015-11-16 2 views
0

Я делаю простой пользовательский список с помощью RecyclerView в android, и я это сделал, различный pic используется в пользовательском списке, я хочу сделать клик по клику в отдельности. Предложите мне несколько советов.Image clickable in Recycle View in android

Ниже ПОС моего пользовательского списка:

Я хочу, чтобы сделать, как и нелюбовь кликабельным изображения.

ниже может recycleView Adpter:

public class recycleReviewAdpter extends RecyclerView.Adapter<recycleReviewAdpter.myViewHolder>{ 

    private Context context; 
    List<single_row_data> data; 

    public recycleReviewAdpter(Context context ,List<single_row_data> data) { 
     this.context=context; 
     this.data=data; 
    } 

    @Override 
    public myViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { 
     View view= LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.singel_row, null); 
     myViewHolder myViewHolder=new myViewHolder(view); 

     return myViewHolder; 
    } 

    @Override 
    public void onBindViewHolder(myViewHolder holder, int position) { 

     holder.titelText.setText(data.get(position).getTitel()); 
     holder.shareImage.setImageResource(data.get(position).getSharePic()); 
     holder.likeImage.setImageResource(data.get(position).getLikePic()); 
     holder.disLikeImage.setImageResource(data.get(position).getDisLikePic()); 
     holder.image.setImageResource(data.get(position).getImage()); 

    } 

    @Override 
    public int getItemCount() { 
     return data.size(); 
    } 
     class myViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{ 

     public ImageView likeImage,disLikeImage,shareImage,image; 
     public TextView titelText; 

     public myViewHolder(View itemView) { 
      super(itemView); 

      likeImage= (ImageView) itemView.findViewById(R.id.likeImage); 
      disLikeImage= (ImageView) itemView.findViewById(R.id.dislikeImage); 
      shareImage= (ImageView) itemView.findViewById(R.id.shareImage); 
      image= (ImageView) itemView.findViewById(R.id.imageView); 
      titelText= (TextView) itemView.findViewById(R.id.titelText); 
     } 


     @Override 
     public void onClick(View v) { 

      int id=v.getId(); 

      switch (id){ 
       case R.id.likeImage: 
        Toast.makeText(v.getContext(),"Like",Toast.LENGTH_LONG).show(); 
        break; 

       case R.id.dislikeImage: 
        Toast.makeText(v.getContext(),"Like",Toast.LENGTH_LONG).show(); 
        break; 
       case R.id.shareImage: 
        Toast.makeText(v.getContext(),"share",Toast.LENGTH_LONG).show(); 
        break; 
       default:Toast.makeText(v.getContext(),"Nohting",Toast.LENGTH_LONG).show(); 

      } 


     } 
    } 

} 
+0

В чем проблема? Вы попробовали clickListener? Если вы это сделали, опубликуйте код, и мы сможем отлаживать, почему он не работает. –

+0

Я хочу сделать только три изображения (Like, Dislike, Share) clickable, я также отправляю свой код. Скажите мне, пожалуйста, что я делаю. –

ответ

0
@Override 
public void onBindViewHolder(ViewHolder viewHolder, int i) { 


    viewHolder.MovieName.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      //do something 
      Toast.makeText(c,"Movie Name clicked",Toast.LENGTH_SHORT).show(); 
     } 
    }); 

    viewHolder.itemView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      //Do your stuff 

     } 
    }); 
} 
1

ваш код довольно хорошо. просто сделать это простая вещь для каждого ImageView

public myViewHolder(View itemView) { 
     super(itemView); 

     likeImage= (ImageView) itemView.findViewById(R.id.likeImage); 
     likeImage.setonclickListner(this); 
    } 
+1

Спасибо, что работа для меня. : p –

+0

, если его полезно дать голосование и принять ответ, нажав на отметку галочки –

+1

У меня также есть такая же проблема. Выполняет ваше решение @VishalPatel –