-
[RecyclerView] 안드로이드 리사이클러뷰 아이템 클릭Android/개발 2018. 11. 13. 22:14
안드로이드 RecyclerView 아이템 클릭
안드로이드 앱에서 RecyclerView(리사이클러뷰)를 쓸 땐 보여주기만 할 때도 있지만 RecyclerView의 아이템을 클릭하여 동작을 수행하는 기능을 많이 개발합니다. 이번엔 RecyclerView의 아이템을 클릭하는 방법과 아이템 내의 각 View(TextView, ImageView 등) 등을 클릭하는 방법을 알아보도록 하겠습니다.
RecyclerView의 기본예제를 이용하여 간단하게 RecyclerView의 아이템을 클릭하는 방법입니다.
Adpater의 ItemViewHolder에서 OnClickListener 사용
- RecyclerAdapter.java
class ItemViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private TextView textView1;
private TextView textView2;
private ImageView imageView;
private Data data;
ItemViewHolder(View itemView) {
super(itemView);
textView1 = itemView.findViewById(R.id.textView1);
textView2 = itemView.findViewById(R.id.textView2);
imageView = itemView.findViewById(R.id.imageView);
}
void onBind(Data data) {
this.data = data;
textView1.setText(data.getTitle());
textView2.setText(data.getContent());
imageView.setImageResource(data.getResId());
itemView.setOnClickListener(this);
textView1.setOnClickListener(this);
textView2.setOnClickListener(this);
imageView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.linearItem:
Toast.makeText(context, "TITLE : " + data.getTitle() + "\nContent : " + data.getContent(), Toast.LENGTH_SHORT).show();
break;
case R.id.textView1:
Toast.makeText(context, data.getTitle(), Toast.LENGTH_SHORT).show();
break;
case R.id.textView2:
Toast.makeText(context, data.getContent(), Toast.LENGTH_SHORT).show();
break;
case R.id.imageView:
Toast.makeText(context, data.getTitle() + " 이미지 입니다.", Toast.LENGTH_SHORT).show();
break;
}
}
}- Activity나 Fragment 등에서 OnClickListener를 사용하듯이 View들에 OnClickListener를 연결하여 사용합니다.
- Item 전체 클릭시 ItemViewHolder의 생성자에서 받아온 itemView를 이용하여 구현합니다.
- Item의 SubView에도 OnClickListener를 연결하면 각각의 Click 동작을 구현할 수 있습니다.
결과
- 각각의 클릭 결과를 보실 수 있습니다. 이 예제에서는 Toast Message를 이용했지만 화면 이동, Dialog 표시 등 다양한 동작들을 수행할 수 있습니다.
RecyclerView에서는 간단하게 OnClickListener를 연결하여 아이템의 클릭 동작을 구현할 수 있습니다!
궁금한 점이나 잘못된 점이 있다면 댓글을 남겨주시면 답변드리겠습니다^^
안드로이드 RecyclerView를 이용한 프로젝트 구경하기
'Android > 개발' 카테고리의 다른 글
[RecyclerView] 안드로이드 리사이클러뷰 Header/Footer 달기 (12) 2018.11.15 [RecyclerView] 안드로이드 리사이클러뷰 접기/펼치기 (22) 2018.11.14 [RecyclerView] 안드로이드 리사이클러뷰 기본 사용법 (12) 2018.11.13 [TextView] 안드로이드 TextView의 모든 것 3 - 특정 문자열 속성 바꾸기 (2) 2018.11.12 [TextView] 안드로이드 TextView의 모든 것 2 - 모서리 둥글게 버튼 만들기 (1) 2018.11.02 댓글