시나리오: 메인엑티비티에서 버튼 클릭 시 sub엑티비티로 전환되며 이때 "안녕하세요" 라는 

             데이터를 같이 전송한다.


<메인 엑티비티>

public class MainActivity extends Activity{

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

...

public void onClick(View view) {

switch (view.getId()) {

case R.id.Button1:             

          Intent intent = new Intent(MainActivity.this, SubActivity.class);

     intent.putExtra("type", "안녕하세요");  // intent에 

     startActivity(intent);

   break;

}


<서브 엑티비티>

public class SubActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_sub);

Intent intent = getIntent();

String revStr = intent.getExtras().get("type").toString();

}

}


위와 같은 방법으로는 기본형의 데이터만 주고받을 수 있다. int, String, boolean 등..

엑티비티간 객체를 주고받기 위해서는 해당 객체의 클래스를 Serializable인터페이스를 확장시켜준다

public class A implements Serializable{

...

}


메인에서 intent.putExtra("objct",objectName);

서브에서 A object =  (A)intetn.getSerializableExtra("object");

와 같은 형식으로 넘겨받을 수 있다.


엑티비티간 객체전송 출처: http://www.androidpub.com/2429179



+ Recent posts