- 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 메세지 잘 뜸
끝
'앱 개발 > 안드로이드(Java)' 카테고리의 다른 글
ViewPager2와 Fragment 예제 (0) | 2021.08.16 |
---|---|
RecyclerView ScrollBar 설정 (0) | 2021.07.10 |
RecyclerView를 커스텀해서 가로,세로 구현하기 (0) | 2021.06.12 |
ListView를 커스텀해서 구현하기 (0) | 2021.06.11 |
Retrofit2를 사용하여 서버(node.js)와 Post/Get/Put/Delete 통신하기 (2/2) (0) | 2021.06.10 |