2014-11-06 7 views
11

onItemClickRecyclerView이 아니기 때문에 @onItemClick 또는 @onClick 개의 주석으로 항목 클릭 수를 처리 할 수 ​​있습니까? ButterKnife?ButterKnife OnItemClick을 RecyclerView와 함께 사용하는 방법?

그렇지 않은 경우 사용할 수 있습니까?

+0

여기에 약간의 설명이 표시 될 수 있습니다. 클릭 한 셀의 위치는 어떻게 얻을 수 있습니까? – aprofromindia

+0

더 많은 데이터 또는 코드를 표시하여 필요한 것을 이해할 수 있습니까 – IgniteCoders

답변

1

불행히도 ButterKnife는이 기능을 지원하지 않습니다. RecyclerView.OnItemTouchListener 또는 @OnClick 및 인터페이스를 사용하여 무언가를 만들 수 있습니다.

9

내 해결 방법은 @OnClick을 ViewHolder 안에 사용하는 것입니다. 이것은 "목록 항목"의 어떤 요소가 클릭되었는지에 대한 단서를 갖는 유일한 방법입니다.

-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

+1

** **이 코드 **는 질문에 대답 할 수 있지만 이해를 돕기 위해 텍스트의 본질적인 부분을 포함시키고 참조 용 코드를 제공하는 것이 좋습니다. ** ** 코드 **가 오래되면 ** 코드 전용 ** 답변이 무효화 될 수 있습니다. – Sufian

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