728x90

목동코딩:

안드로이드 스튜디오에서 startActivityForResult() 메서드를 사용하여 다른 액티비티를 시작하고 그 결과를 수신하는 방법은 다음과 같습니다:

먼저, 다른 액티비티를 시작할 액티비티에서 startActivityForResult() 메서드를 호출합니다. 이때 호출 시 인텐트 객체와 requestCode를 함께 전달합니다.

requestCode는 나중에 결과를 수신할 때 이를 구별하기 위한 코드입니다.

Intent intent = new Intent(this, OtherActivity.class);
int requestCode = 1;
startActivityForResult(intent, requestCode);

다른 액티비티에서는 setResult() 메서드를 사용하여 결과 데이터와 resultCode를 설정합니다. 이때 resultCode는 이전 액티비티에서 전달한 requestCode와 일치해야 합니다.

Intent resultIntent = new Intent();
resultIntent.putExtra("result", "결과 데이터");
setResult(Activity.RESULT_OK, resultIntent);

이전 액티비티에서는 onActivityResult() 메서드를 오버라이드하여 결과를 수신합니다. 이때 requestCode와 resultCode를 확인하고 결과 데이터를 가져올 수 있습니다.

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 1 && resultCode == Activity.RESULT_OK) {
        String result = data.getStringExtra("result");
        // 결과 데이터 처리
    }
}

위와 같이 startActivityForResult() 메서드를 사용하면 다른 액티비티에서 처리된 결과를 이전 액티비티에서 간편하게 수신할 수 있습니다.

728x90
728x90

목동코딩학원:

안드로이드 스튜디오로 앱을 개발하면서 가변적으로 대기 시간을 변결해야 할 경우가 종종 발생한다

아래는 random과 handler를 사용하여 필요한 기능을 구현했다

minValue, maxValue는 1초가 1000이다.

 

        int minValue = 10000;
        int maxValue = 30000;

        Random random = new Random();
        int randomValue = random.nextInt(maxValue - minValue + 1) + minValue;        
        
        Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                setResult(RESULT_OK);
                finish();
            }
        }, randomValue); //딜레이 타임 조절
728x90

+ Recent posts