프로그래밍 언어/Android

Android에서 startActivityForResult를 관리하는 방법

Rateye 2021. 6. 3. 11:58
728x90
반응형
질문 : Android에서 startActivityForResult를 관리하는 방법

startActivityForResult 의해 기본 활동에서 두 번째 활동을 호출합니다. 두 번째 활동에는이 활동을 완료하는 몇 가지 메서드가 있지만 (결과가 없을 수도 있음) 그중 하나만 결과를 반환합니다.

예를 들어, 주요 활동에서 두 번째 활동을 호출합니다. 이 활동에서는 카메라가있는 등 핸드셋의 일부 기능을 확인합니다. 없는 경우이 활동을 종료하겠습니다. MediaRecorder 또는 MediaPlayer 준비하는 동안 문제가 발생하면이 활동을 종료하겠습니다.

장치에 카메라가 있고 녹화가 완료되면 비디오 녹화 후 사용자가 완료 버튼을 클릭하면 결과 (녹화 된 비디오의 주소)를 기본 활동으로 다시 보냅니다.

주요 활동의 결과를 어떻게 확인합니까?

반응형
답변

당신의에서 FirstActivity 통화 SecondActivity 사용 startActivityForResult() 메소드를.

예를 들면 :

int LAUNCH_SECOND_ACTIVITY = 1
Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, LAUNCH_SECOND_ACTIVITY);

SecondActivity FirstActivity 로 되돌리려는 데이터를 설정합니다. 돌아가고 싶지 않다면 아무것도 설정하지 마십시오.

예 : SecondActivity 데이터를 다시 보내려는 경우 :

Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(Activity.RESULT_OK,returnIntent);
finish();

데이터를 반환하지 않으려면 :

Intent returnIntent = new Intent();
setResult(Activity.RESULT_CANCELED, returnIntent);
finish();

이제 FirstActivity onActivityResult() 메서드에 대해 다음 코드를 작성합니다.

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == LAUNCH_SECOND_ACTIVITY) {
        if(resultCode == Activity.RESULT_OK){
            String result=data.getStringExtra("result");
        }
        if (resultCode == Activity.RESULT_CANCELED) {
            // Write your code if there's no result
        }
    }
} //onActivityResult

Kotlin에서 훨씬 더 나은 방식으로 두 활동간에 데이터 전달을 구현하려면 '활동간에 데이터를 전달하는 더 나은 방법 '을 참조하세요.

출처 : https://stackoverflow.com/questions/10407159/how-to-manage-startactivityforresult-on-android
728x90
반응형