본문 바로가기
개발

[Android]인텐트로 객체전달

by 테크냥이 2020. 5. 8.

안드로이드에서 Activity 간에 객체(Object)를 전달해야 할 때가 있습니다.

기본적으로는 Activity간 Intent로 전달은 되지 않는데요

전달할 객체에 Serializable를 상속받아 전달하게 되면 Activity간 객체 전달이 가능해 집니다.

 

순서는 아래와 같습니다. 전달할 객체에 serializab을 구현해 줍니다.

직렬화를 하려는 객체는 동일한 serialVersionUID 를 가지고 있어야 합니다.

 

객체 정의
  ...
  public class UserObject implements Serializable{
    private static final long serialVersionUID = 1L;
    private String name; private String id;
    private String dev;
    public UserObject(Stirng name, String id, String dev){
    this.name = name;
    this.id = id;
    this.dev = dev;
  }
  // getter setter
  ...

 

위와 같이 Serializable을 implements 해서 객체를 만들어주고 객체를 보내주면 됩니다.

 

보내는 부분
  // 인텐트로 객체를 전달하는 방법, 전달하는 Activity 쪽
  ...
  // 인텐트로 전달할 객체를 생성
  UserObject user = new UserObject("abc", "111", "test");
  //인텐트 생성
  Intent intent = new Intent(getApplicationContext(), NextActivity.class);
  intent.putExtra("user", user); startActivity(intent);
  //
  ...

 

받는 부분
  //받는 Activity쪽
  ...
  Intent intent = getIntent();
  UserObject user = (UserObject) intent.getSerializableExtra("user");
  ...

 

위와같이 받아오면 됩니다.

직렬화 개념은 다음 기회에

반응형

댓글