마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

intent에 제가 정의한 객체를 넣을수는 없나요?

0 추천

서비스에서 메인액티비티로 데이터를 보낼려고 합니다. 간단히 intent에 데이터를 넣고 센드브로드캐스트를 할 생각이였는데 제가 보내고 싶은 데이터가 제가 정의한 클래스의 객체여서 적절한 함수가 없더군요.. put함수중에 arraylist가 매개변수인 것이 있어서 이게 제네릭클래스니까 제가 정의한 객체를 어레이리스트에 넣고 보내면 되겠다 싶었는데 잘 안됩니다. 무슨 좋은 방법 있을까요?

제가 정의한 데이터 클래스

public class BranchGPSData {
    private double latitude;
    private double longitude;
    private String branchID;
 
    public void setData(String branchID, double latitude, double longitude){
        this.branchID=branchID;
        this.latitude=latitude;
        this.longitude=longitude;
    }
}
 
서비스 안의 소스의 일부분..
 
branchGPSDatas=new ArrayList<>();//어레이리스트
            branchGPSData=new BranchGPSData[jsonArray.length()];//데이터 배열
 
            for(int i=0;i<jsonArray.length();i++){
                jsonObject=jsonArray.getJSONObject(i);
 
                branchGPSData[i].setData(jsonObject.getString("branchID"), jsonObject.getDouble("latitude"), jsonObject.getDouble("longitude"));//배열에 데이터를 넣는다
 
                branchGPSDatas.add(branchGPSData[i]);//어레이리스트에 배열을 넣는다
            }
 
            //서비스를 종료하기전에 branchGPSData를 넘겨야한다..
            Intent intent1=new Intent(this, MainActivity.class);
            intent1.put?????
 

데이터 클래스 안에 변수가 3개 있는데 더블형 두개와 스트링형 하나입니다.

객체를 보내지 못하면 더블형 따로 스트링 따로 보낸다음 받는쪽에서 다시 합쳐야할까요?

빙구짱 (1,720 포인트) 님이 2015년 4월 3일 질문
빙구짱님이 2015년 4월 3일 수정

2개의 답변

0 추천
만드신 POJO 클래스에서 Serializable interface 를 구현하시면 가능합니다.
mamondebaltob (32,750 포인트) 님이 2015년 4월 3일 답변
0 추천

BranchGPSData 클래스에  implements Serializable 하시고,

intent1.putExtra("키명", branchGPSDatas); 해서 보내시면 됩니다.

 

받으실때는 (ArrayList<BranchGPSData>) intent.getSerializableExtra("키명"); 해서 받으시면 됩니다.

익명사용자 님이 2015년 4월 3일 답변
...