Android_8일차
-
실습하기
-
Activity 결과 수신에 대한 기능 구현
ActivityResultLauncher<Intent> launcher = registerForActivityResult( new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() { @Override public void onActivityResult(ActivityResult result) { if(result.getResultCode() == RESULT_OK){ Intent intent = result.getData(); Log.d("FirstActivity", intent.getStringExtra("msg")); } } } );
-
registerForActivityResult : 인텐트 응답 콜백 등록 실시
-
result.getResultCode() : 결과코드를 반환하는 메소드
- RESULT_OK : 정상적으로 처리가 됐을 때의 결과코드
- RESULT_CANCELED : 비정상적으로 처리가 됐을 때 결과 코드
-
result.getData() : 응답 온 Intent에 저장된 데이터를 반환하는 메소드
-
-
버튼 기능 구현하기
btn2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(FirstActivity.this,ThirdActivity.class); launcher.launch(intent); } });
- launcher를 사용하는 이유?
: ThirdActivity(다른 액티비티)에서 실행 후 결과에 대한 처리는 onActivityResult()에서 처리하기 위해 실행하는 메소드
- launcher를 사용하는 이유?
-
ThirdActivity
- 전체 소스
import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; public class ThirdActivity extends AppCompatActivity { Button btn; EditText edt; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_third); edt = findViewById(R.id.edtMsg); btn = findViewById(R.id.btnThird); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String msg = edt.getText().toString(); Intent intent = new Intent(); intent.putExtra("msg",msg); setResult(RESULT_OK,intent); finish(); } }); } }
- setResult(RESULT_OK,intent);
: 정상적으로 처리가 됐을 때 응답메세지와 intent를 실행하여 같이 전달한다.
-
실행 화면
-
콘솔에 출력화면
-
Author And Source
이 문제에 관하여(Android_8일차), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dfdf/Android8일차저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)