OnClickListener
'u CardView
'a nasıl eklerim? Her kartın tıklandığında farklı bir işlem yapmasını istiyorum.CardView için OnClickListener?
Kartların görüntülenmesi için özel bir bağdaştırıcıya sahip bir RecyclerView
sahibim. implemented budur.
OnClickListener
'u CardView
'a nasıl eklerim? Her kartın tıklandığında farklı bir işlem yapmasını istiyorum.CardView için OnClickListener?
Kartların görüntülenmesi için özel bir bağdaştırıcıya sahip bir RecyclerView
sahibim. implemented budur.
Sen ViewHolder
sınıfta OnItemClickListener
uygulamak ve her onBindViewHolder()
üzerinde ViewHolder
örneklerine geçerli öğeyi geçmelidir. this post itibaren
:
public static class ViewHolder extends RecyclerView.ViewHolder {
public View view;
public Item currentItem;
public ViewHolder(View v) {
super(v);
view = v;
view.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
// item clicked
}
});
}
}
@Override public void onBindViewHolder(ViewHolder viewHolder, int i) {
viewHolder.currentItem = items.get(i);
}
sen sadece onBindViewHolder istediğiniz Öğe onClick Dinleyici, ekleyin. Bu pozisyonun değerine kolayca erişilebilen yer. lütfen aşağıdaki kodu kontrol edin.
@Override
public void onBindViewHolder(final MyViewHolder holder, final int position) {
holder.title.setText(Html.fromHtml(html2text(results.get(position).getTitle().toString())));
holder.description.setText(Html.fromHtml(html2text(results.get(position).getSummary().toString())));
holder.url.setText(Html.fromHtml(html2text(results.get(position).getUrl().toString())));
holder.url.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(mContext, DetailsActivity.class);
intent.putExtra("url",results.get(position).getUrl().toString());
mContext. startActivity(intent);
}
});
Bu sorunun benim çözümdür:
İlk ViewHolder sınıfında görünüm nesnesi görüntüle başvuru eklemek
public static class TouristViewHolder extends RecyclerView.ViewHolder{
public ImageView img;
public TextView name;
public TextView description;
public RatingBar rating;
public View view; // <----- here
public TouristViewHolder(final View view) {
super(view);
this.view = view; // <----- here
// ... rest of code
}
}
Sonraki, yöntemde onBindViewHolder(final MyViewHolder holder, final int position)
yılında, ben bir dinleyici ekleyin ve yeni Intent
'u ayarlayın. Bu ince benim için çalışıyor
@Override
public void onBindViewHolder(TouristViewHolder touristViewHolder, final int position) {
touristViewHolder.view.setOnClickListener(new View.OnClickListener() { // <--- here
@Override
public void onClick(View v) {
Log.i("W4K","Click-"+position);
context.startActivity(new Intent(context,MainActivity.class)); // <--- here
}
});
, bu başkası yardımcı olacağını umuyoruz.
Bağlantı için teşekkürler. Orada dinleyiciyi tanımladım. – MikkoP
Bir şey değil, yardımcı olabileceğime sevindim. –
Cevabınızı biraz daha detaylandırabilir misiniz .... hangi kartın tıklanacağını nasıl bilirim? Tıkla .. viewId() kullanırsanız, aynı kimliği verir. – Crawler