2014-11-06 37 views

回答

1

不幸的是,ButterKnife不支持此功能。您可以使用RecyclerView.OnItemTouchListener@OnClick和界面進行設置。

9

我的解決方案是在ViewHolder中使用@OnClick。這是唯一能夠確定「列表項」的哪個元素已被點擊的線索。

-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

請詳細說明使用的代碼。 – Yatin 2016-07-08 07:48:14

+1

儘管**這個代碼**可能回答這個問題,但最好包含文本的基本部分以供理解並提供參考代碼。 **僅限代碼**如果代碼**變舊,答案可能會失效。 – Sufian 2016-07-08 14:21:37

1

@OnClick詮釋的作品,你ViewHolder類使用如下。

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 
    } 
}