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에서 처리)
반응형
'💻 Computer > Android' 카테고리의 다른 글
안드로이드 스튜디오 Github Push Partially failed (0) | 2020.10.04 |
---|---|
Android 외부 라이브러리 사용하기 (1) | 2020.08.07 |
Type androidx.activity.R is defined multiple times (0) | 2020.07.23 |
Intent에서 Context (0) | 2020.07.23 |
Retrofit2로 데이터 받아 와서 RecyclerView 만들기 (3) | 2020.03.07 |