반응형
RecyclerView 아이템을 클릭하여 동작 수행
Adapter의 ItemViewHolder에서 OnClickListener 사용
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 동작을 구현할 수 있습니다.
The End.
반응형
'Study > Android Studio' 카테고리의 다른 글
[Android] APK 파일 생성하기 (0) | 2021.01.30 |
---|---|
[I에게] Activity에 파라미터 전달하기 (0) | 2021.01.29 |
[ReferenceBook] Android DB(SQLite) 파일 위치 (0) | 2021.01.26 |
[ReferenceBook] DB(SQLite) 사용하기 (0) | 2021.01.26 |
[Android] ScrollView 사용하기 (0) | 2021.01.24 |