728x90
1. 받을 데이터를 intent에 담아서 RecyclerView adapter 화면을 띄운다.
cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 1. 인텐트에 유저가 어떤 행을 눌렀는지 파악하여
// 누른 이름과 전화번호를 담아서
int index = getAdapterPosition();
Contact contact = contactList.get(index);
// 2. 수정 액티비티를 띄운다.
// 어떤 액티비티가 어떤 액티비티를 띄운다!! => 인텐트에 있어야 한다.
Intent intent = new Intent(context, EditActivity.class);
intent.putExtra("contact", contact);
// intent.putExtra("id", contact.id);
// intent.putExtra("name", contact.name);
// intent.putExtra("phone", contact.phone);
context.startActivity(intent);
}
intent의 파라미터에는 어떤 액티비티에서 어떤 액티비티를 띄울것인지 각자 지정해주어야 하는데 adapter는 액티비티가 아니라 일관성이 없다.
그렇기 때문에 멤버 변수로 저장했던 this.context = context ; 의 context가 MainActivity로 넘겨받았기 때문에 파라미터에 Context, 띄울 액티비티를 넣어준다.
public ContactAdapter(Context context, List<Contact> contactList) {
this.context = context;
this.contactList = contactList;
}
728x90
'안드로이드' 카테고리의 다른 글
안드로이드 - 다른 액티비티로 데이터 전달 시, 클래스의 객체를 전달하는 방법(Serializable) (0) | 2023.02.01 |
---|---|
안드로이드 - RecyclerView 에서 몇번째 행을 눌렀는지 알아낼 수 있는 함수 ( getAdapterPosition( ) ) (0) | 2023.02.01 |
안드로이드 - 메뉴 아이콘 이미지를 벡터 이미지로 만드는 방법 (0) | 2023.01.31 |
안드로이드 - SQLite3 데이터베이스 활용하는 방법(SQLiteOpenHelper 상속) (0) | 2023.01.31 |
안드로이드 - sharedPreference 를 이용한 데이터 저장과 불러오기 (0) | 2023.01.31 |