이전포스팅
이전 포스팅에서는 안드로이드에서 startActivityForResult를 호출하여 다른 액티비티로 전환하는 방법에 대해 알아보았습니다.
이제 전환된 액티비티에서 다시 원래의 화면으로 돌아왔을 때 결과를 수신하는 방법에 대해 알아보도록 하겠습니다.
onActivityResult 메서드로 결과 처리 예제
onActivityResult 메서드를 사용하여 액티비티 결과를 처리하는 예제입니다.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE) {
if (resultCode == RESULT_OK) {
// 결과가 성공적으로 수신된 경우 처리
// ...
} else if (resultCode == RESULT_CANCELED) {
// 사용자가 취소한 경우 처리
// ...
}
}
}
위의 예제에서는 onActivityResult 메서드를 오버라이드하여 액티비티 결과를 처리합니다. requestCode는 요청 코드를, resultCode는 결과 코드를 나타냅니다.
인텐트에 데이터 전달 예제
인텐트를 사용하여 액티비티 간에 데이터를 전달하는 예제입니다.
// 데이터를 포함한 인텐트 생성
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("key", value);
// 인텐트를 사용하여 액티비티 전환
startActivity(intent);
위의 예제에서는 putExtra 메서드를 사용하여 데이터를 인텐트에 추가합니다.
전환할 대상 액티비티에서는 getIntent 메서드를 사용하여 인텐트를 받아온 후, getXXXExtra 메서드를 사용하여 데이터를 추출합니다.
이 XXX란 전 액티비티에서 지정한 값들의 유형을 의미합니다.
예를들어 Int값을 지정했으면 getIntExtra 입니다.
setResult 메서드와 onActivityResult 콜백 활용 예제
setResult 메서드와 onActivityResult 콜백을 활용하여 결과를 전달하는 예제입니다.
// 결과를 포함한 인텐트 생성
Intent resultIntent = new Intent();
resultIntent.putExtra("result", value);
// 결과 설정 및 액티비티 종료
setResult(RESULT_OK, resultIntent);
finish();
위의 예제에서는 setResult 메서드를 사용하여 결과를 설정하고, finish 메서드를 호출하여 액티비티를 종료합니다. 이후 이전 액티비티의 onActivityResult 메서드에서 결과를 수신하고 처리합니다.
액티비티 전환 시 애니메이션 적용 예제
액티비티 전환 시 애니메이션을 적용하는 예제입니다.
// 전환 애니메이션 설정
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
// 액티비티 전환
startActivity(intent);
위의 예제에서는 overridePendingTransition 메서드를 사용하여 전환 애니메이션을 설정합니다.
slide_in_right는 새로운 액티비티가 화면으로 슬라이드되어 들어오는 애니메이션을, slide_out_left은 현재 액티비티가 화면에서 왼쪽으로 슬라이드되어 사라지는 애니메이션을 나타냅니다.
안드로이드 액티비티를 활용하여 화면 전환, 결과 처리, 데이터 전달, 애니메이션 적용 등 다양한 기능을 구현할 수 있습니다.