골드키위 (KCM, YSH)

안드로이드 - Activity 로 부터 결과 값 가져오기, startActivityForResult 본문

IT/Android

안드로이드 - Activity 로 부터 결과 값 가져오기, startActivityForResult

골드 키위 2020. 2. 1. 13:54

우선 결과를 가져 오려면 두번째 Activity를 startActivityForResult() 로 호출합니다(startActivity() 대신). 

 

호출 후 두번째 Activity에서 첫번째 Activity로 데이터를 전달할 수 있습니다.

 

startActivityForResult는 두번째 Activity가 종료되면서 다시 처음으로 데이터를 보내는 방식입니다.

 

-- 첫번째 페이지 (메인, 결과값을 받을 화면)에 작성

//버튼 또는 동작하는 부분에 삽입
Intent intent = new Intent(getApplicationContext(), SecondActivity.class);
startActivityForResult(intent, REQUEST_CODE_MENU); //요청코드 중복 불가

//CallBack 결과값을 받아서 처리하는 코드 작성
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
 
    if (requestCode == REQUEST_CODE_MENU) {
        Toast.makeText(getApplicationContext(),
                "요청코드 : " + requestCode + " / 결과코드 : " + resultCode, Toast.LENGTH_LONG).show();
 
        if (resultCode == RESULT_OK) {
            String name = data.getExtras().getString("name");
            Toast.makeText(getApplicationContext(), "응답값 : " + name, Toast.LENGTH_LONG).show();
        }
    }
}

 

-- 두번째 페이지 (서브, 데이터 전송 화면)에 작성

//버튼 또는 서브 페이지 종료 시점, 리턴 되는 시점 작성
Intent intent = new Intent();
intent.putExtra("name", "Apple");
setResult(RESULT_OK, intent);
 
finish();

 

동작 순서 (자료제공 : https://codedragon.tistory.com/3235)

 

반응형
Comments