Test.class
//인텐트 간에 값을 넘기기위해서는 반드시 Serializable 구현
public class Test implements Serializable {
private String name;
private int age;
private String addr;
public Test(String name, int age, String addr)
{
this.name = name;
this.age = age;
this.addr = addr;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
}

TestPutExtra.class
public class TestPutExtra extends Activity {
    //Vector 는 직렬화가 잘 안됨 ArrayList 를 사용하면 됨
    ArrayList<Test> list;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main); 

    Intent i = new Intent(this, TestGetExtra.class);
     list = new ArrayList<Test>();
    
     list.add(new Test("최재현", 30, "수원"));
     list.add(new Test("시스타", 30, "서울"));
     list.add(new Test("소녀시대", 30, "수원"));
     list.add(new Test("원더걸스", 30, "수원"));
     list.add(new Test("레인보우", 30, "수원"));
    
    //값을 넘김
     i.putExtra("list", list);
    
    //인텐트 시작
     startActivityForResult(i, SHOW_PREFERENCES);
     }

   @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data)
    {
     super.onActivityResult(requestCode, resultCode, data);
    
     if(requestCode == SHOW_PREFERENCES)
     if(resultCode == Activity.RESULT_OK)
     {    
//넘겨준 값은 직렬화 되어 넘어가기 때문에 다른 인텐트에서 변경하여도 값이 변하지 않음
     Log.e("testResult", list.get(0).getName());
      }
    }
}

TestGetExtra.class
public class TestGetExtra extends Activity {
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.preferences);
Intent intent = getIntent();
Serializable list = intent.getSerializableExtra("list");
 
    //경고 메세지를 없에주는 어노테이션
@SuppressWarnings("unchecked")
ArrayList<Test> l = (ArrayList<Test>)list;
Log.e("test", ((Test)l.get(0)).getName());
Log.e("test", ((Test)l.get(1)).getName());
Log.e("test", ((Test)l.get(2)).getName());
Log.e("test", ((Test)l.get(3)).getName());
Log.e("test", ((Test)l.get(4)).getName());
   //첫번째 아이템 값 변경
l.get(0).setName("kara");
}
블로그 이미지

스마트전

,