앱 개발/안드로이드(Java)
RecyclerView 아이템 클릭 리스너 구현하기
태기
2021. 6. 17. 10:46
[안드로이드] RecyclerView를 커스텀해서 가로,세로 구현하기
ListView에 이어서 RecyclerView를 만들어보자 이제부터는 프로젝트 만드는건 생략함. 물론 이론 설명도 생략. - ListView는 세로로 리스트가 나타나지만 RecyclerView는 가로로 리스트를 나타낼 수도 있다!
taek2.tistory.com
- RecyclerView 커스텀 구현부터 먼저 한 다음 따라해야함
OnItemClickListener & OnLongItemClickListener 구현
- RecyclerViewAdapter.java 에 다음 소스코드를 추가
public interface OnItemClickListener {
void onItemClick(int pos);
}
private OnItemClickListener onItemClickListener = null;
public void setOnItemClickListener(OnItemClickListener listener) {
this.onItemClickListener = listener;
}
public interface OnLongItemClickListener {
void onLongItemClick(int pos);
}
private OnLongItemClickListener onLongItemClickListener = null;
public void setOnLongItemClickListener(OnLongItemClickListener listener) {
this.onLongItemClickListener = listener;
}
- 같은 RecyclerViewAdapter.java 파일에서 ViewHolder 생성자 안에 다음 소스코드 추가
imgView_item.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position = getAdapterPosition();
if (position != RecyclerView.NO_POSITION) {
if (onItemClickListener != null) {
onItemClickListener.onItemClick(position);
}
}
}
});
imgView_item.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
int position = getAdapterPosition();
if (position != RecyclerView.NO_POSITION) {
if (onLongItemClickListener != null) {
onLongItemClickListener.onLongItemClick(position);
return true;
}
}
return false;
}
});
- MainActivity.java 에 다음 소스코드 추가
: 리사이클러뷰 setAdapter() 하기 전에 구현
mRecyclerViewAdapter.setOnItemClickListener(new RecyclerViewAdapter.OnItemClickListener() {
@Override
public void onItemClick(int pos) {
Toast.makeText(getApplicationContext(), "onItemClick position : " + pos, Toast.LENGTH_SHORT).show();
}
});
mRecyclerViewAdapter.setOnLongItemClickListener(new RecyclerViewAdapter.OnLongItemClickListener() {
@Override
public void onLongItemClick(int pos) {
Toast.makeText(getApplicationContext(), "onLongItemClick position : " + pos, Toast.LENGTH_SHORT).show();
}
});
실행결과
: Toast 메세지 잘 뜸