본문 바로가기

💻 Computer/Android

RecyclerView Click Event 처리 방법 2가지

RecyclerView는 ListView와 달리 View에서 클릭 이벤트를 다루지 않고 ItemView에서 이벤트를 통해 처리

 

Set-> ItemClickListener Interface 추가하기

1
2
3
4
5
Import android.view.View;
 
public interface ItemClickListener{
    void onItemClickListener(View v, int position);
}
 
 

 

방법1. RecyclerView Adapter에서 클릭이벤트 처리

 

1) View Holder

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class ViewHolder extends RecyclerView.ViewHoler implements View.OnClickListener{
 
    TextView text;
    ItemClickListener itemClickListener;
 
    ViewHolder(View itemView){
 
        super(itemView);
        text = itemView.findViewById(R.id.text);
 
        itemView.setOnClickListener(this);
 
    }
 
    @Override
    public void onClick(View v){
        this.itemClickListener.onItemClickListener(v, getLayoutPosition());
    }
 
}
cs

2) Adapter

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public void onBindViewHolder(@NonNull RecyclerAdapter.ViewHolder holder, int position){
 
    holder.memo_text.setText(recipeList.get(position).getText());
 
    holder.setItemClickListener(new ItemClickListener() {
 
            @Override
            public void onItemClickListener(View v, int position) {
 
                String memo_text = memoList.get(position).getText();
 
                Intent intent = new Intent(v.getContext(), SubActivity.class);
                intent.putExtra("mText", memo_text);
                v.getContext().startActivity(intent);
            }
        });
    }
cs

 

방법2. RecyclerView 외부에서 클릭이벤트 처리 (Activity나 Fragment에서 처리)

 

 

 

 

 

 

반응형