안드로이드 개발 질문/답변
(글 수 45,052)
A에서 버튼을 누르면 B액티비티가 실행되면서
i.putExtra("option", optionStatus); 이런식으로 값을 밀어넣어줘서 받는것 까지는 했습니다.
그런데 B에서 백 버튼으로 다시 A로 돌아갈때도 변수값 하나를 전달되게 하고 싶은데 어떻게 해야하는지
감이 안오네요...혹시 알고 계신분 답변좀 부탁드리겠습니다. 감사합니다.
i.putExtra("option", optionStatus); 이런식으로 값을 밀어넣어줘서 받는것 까지는 했습니다.
그런데 B에서 백 버튼으로 다시 A로 돌아갈때도 변수값 하나를 전달되게 하고 싶은데 어떻게 해야하는지
감이 안오네요...혹시 알고 계신분 답변좀 부탁드리겠습니다. 감사합니다.
2010.11.17 17:27:10
같은 방법으로 주고 받습니다.
intent 를 만들어서 그것에 extra를 넣고 finish() 하기 전에
setResult(intent, int) 로 돌려주면됩니다.
문론 B 엑티비티를 시작할때 startActivityForResult 로 했어야 하지요.
그럼 A로 돌아올때 onActivityResult에 data 인수로 intent가 돌아옵니다.
2010.11.17 17:29:14
아하! 친절한 답변 너무 감사드려요~~그런데 추가질문 있습니다.
그럼 A로 돌아올때 onActivityResult에 data 인수로 intent가 돌아옵니다. 이 부분이 잘 이해가 가지 않습니다.
제가 이해한 바로는 1번 액티비티에서
Intent i = new Intent(layer1.this, layer2.class);
i.putExtra("option", optionStatus);
int result=0;
startActivityForResult(i,result);
이런식으로 2번 액티비티로 넘어갔고 2번 액티비티가 종료될때는
protected void onDestroy() {
Intent i = new Intent(layer2.this, layer1.class);
int result=optionStatus;
setResult(result, i);
super.onDestroy();
}
이런 식으로 해놨습니다. 다시 돌아온 1번 액티비티에서 돌아온 값을 읽으려면 어떻게 해야하는지 궁금합니다. ㅠㅠ
제가 이해한 바로는 1번 액티비티에서
Intent i = new Intent(layer1.this, layer2.class);
i.putExtra("option", optionStatus);
int result=0;
startActivityForResult(i,result);
이런식으로 2번 액티비티로 넘어갔고 2번 액티비티가 종료될때는
protected void onDestroy() {
Intent i = new Intent(layer2.this, layer1.class);
int result=optionStatus;
setResult(result, i);
super.onDestroy();
}
이런 식으로 해놨습니다. 다시 돌아온 1번 액티비티에서 돌아온 값을 읽으려면 어떻게 해야하는지 궁금합니다. ㅠㅠ