본문 바로가기

안드로이드 스튜디오

[안드로이드 스튜디오]다른 액티비티로 데이터 전달 시 클래스의 객체를 전달하는 방법

 

 

안드로이드에서는 Serializable 인터페이스를 구현하여 클래스의 객체를 인텐트를 통해 다른 액티비티로 전달할 수 있다.

 

contact 클래스:

package com.kks.simplecontacts.model;

import java.io.Serializable;

public class contact implements Serializable {

    public String name;
    public String phone;
    public  contact(){

    }

    public contact(String name, String phone) {
        this.name = name;
        this.phone = phone;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }



}

데이터 전달:

            CardView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(context, UpdateActivity.class);

                    // 어댑터에서 몇번째를 유저가 눌렀는지
                    // 인덱스 정보를 알 수 있는 함수!
                    int index = getAdapterPosition();
                    contact contact = contactArrayList.get(index);

                    intent.putExtra("contact",contact);
                    intent.putExtra("index",index);

                    ((MainActivity)context).launcher.launch(intent);


                }
            });

데이터 수신:

                               contact contact = (com.kks.simplecontacts.model.contact) o.getData().getSerializableExtra("contact");
                               int index = o.getData().getIntExtra("index",0);