2014-11-06 26 views
11

, artık RecyclerView olduğunu yapar BUTTERKNIFE hala onun madde @onItemClick veya @onClick ek açıklamalarla tıkladığında üstesinden?ButterKnife Nasıl Kullanılır OnItemClick RecyclerView ile Nasıl Yapılır? <code>onItemClick</code> gibi

Değilse, bunu kullanmak için herhangi bir çalışma var mı?

+0

Bu konuda biraz morluk gösterebilir misiniz, tıklanan hücrenin konumunu nasıl alırsınız lütfen? – aprofromindia

+0

Neye ihtiyacınız olduğunu anlamak için daha fazla veri veya kod gösterebilir misiniz – IgniteCoders

cevap

1

Ne yazık ki ButterKnife bu özelliği desteklemiyor. RecyclerView.OnItemTouchListener veya @OnClick ve arabirim kullanarak bir şeyler yapabilirsiniz.

9

Çözümüm, ViewHolder'ın içinde @OnClick kullanmaktır. "Liste öğesi" nin hangi öğesinin tıklandığına dair bir ipucu elde etmenin tek yolu budur.

-1
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener 
      @Override 
      public void onClick(View view) { 

       int data = getAdapterPosition(); 
/* 
      Intent in = new Intent(getContext(),NextActivity.class); 
       in.putExtra("data",mTextView.getText().toString()); 
      startActivity(in); 
*/ 
//    Flower current = ls.get(position); 
## Heading ## 

       int itemPosition = recycelr.getChildLayoutPosition(view); 
       Flower item = fl_List.get(itemPosition); 

       Intent in = new Intent(getContext(),NextActivity.class); 
       in.putExtra("id",0); 
       in.putExtra("data",item.getName()); 
       startActivity(in); 

      } 
+4

Lütfen ayrıntılı bir şekilde kullanılan kodu açıklayın. – Yatin

+1

** Bu kod ** soruyu cevaplayabilirken, anlaşılması için metnin önemli kısmını eklemek ve referans kodunu sağlamak daha iyidir. ** Kod sadece ** cevaplar ** kodu ** eskiyse geçersiz olabilir. – Sufian

1

@OnClick Ek Açıklama çalıştığı, ViewHolder sınıfında aşağıda kullanın.

class ViewHolder extends RecyclerView.ViewHolder { 

    @BindView(R.id.title) 
    TextView title; 

    ViewHolder(View itemView) { 
     super(itemView); 
     ButterKnife.bind(this, itemView); 
    } 

    @OnClick 
    void onClick(View view) { 
     System.out.println(getAdapterPosition()); //clicked item position 
    } 
} 
İlgili konular