📝RecyclerView Adapter에서 새로운 액티비티를 실행하기
RecyclerView Adapter에서 ViewHolder에 카드뷰를 클릭했을때의 이벤트를 입력해주려고하는데
새로운 액티비티를 열기 위해서는 새로운 액티비티를 실행할 액티비티가 필요한데 어댑터는 액티비티가 아닌 클래스이다
어댑터 클래스의 멤버변수와 생성자를 만들어줄때 아래 코드처럼 만들었는데
Context context;
List<Contact> contactList;
public ContactAdapter(Context context, List<Contact> contactList) {
this.context = context;
this.contactList = contactList;
}
메인 액티비티에서 어댑터 만들어 리사이클러뷰에 셋팅할때 아래 코드처럼 MainActivity.this 값을 줘서
인텐트를 만들때 액티비티를 입력하는 자리에 context를 입력하면된다
adapter = new ContactAdapter(MainActivity.this, contactList);
recyclerView.setAdapter(adapter);
ViewHolder 생성자에 이벤트 입력(다른 액티비티 실행)
public ViewHolder(@NonNull View itemView) {
super(itemView);
txtName = itemView.findViewById(R.id.txtName);
txtPhone = itemView.findViewById(R.id.txtPhone);
imgDelete = itemView.findViewById(R.id.imgDelete);
cardView = itemView.findViewById(R.id.cardView);
// 카드뷰를 클릭했을때의 이벤트를 입력
cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int index = getAdapterPosition();
Contact contact = contactList.get(index);
// 수정 액티비티를 띄운다
// 어떤 액티비티가 어떤 액티비티를 띄운다 > 인텐트에 있어야한다
Intent intent = new Intent(context, EditActivity.class);
intent.putExtra("contact", contact);
context.startActivity(intent);
}
});
}
'Android Studio' 카테고리의 다른 글
[Android Studio] RecyclerView Adapter에서 AlertDialog 처리 (0) | 2023.02.02 |
---|---|
[Android Studio] 다른 액티비티로 클래스의 객체를 전달하기 (0) | 2023.02.01 |
[Android Studio] RecyclerView 리스트 역순으로 바꾸기 (0) | 2023.02.01 |
[Android Studio] RecyclerView와 Adapter를 사용해 리스트를 화면에 표시하기 (0) | 2023.02.01 |
[Android Studio] 메뉴 아이콘 벡터 이미지 만들기 (0) | 2023.01.31 |
댓글