반응형
1. 배경
startActivityForeResult가 deprecated 되었다.
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) 의 복잡도가 높아진다는 이유로..
2. 해결방안.
활동에서 결과 가져오기[2] 제일 아래 하단을 보면, 쉽게 알수 있다.
- 자바
ActivityResultLauncher<Intent> mStartForResult = registerForActivityResult(new StartActivityForResult(),
new ActivityResultCallback<ActivityResult>() {
@Override
public void onActivityResult(ActivityResult result) {
if (result.getResultCode() == Activity.RESULT_OK) {
Intent intent = result.getData();
// Handle the Intent
}
}
});
@Override
public void onCreate(@Nullable savedInstanceState: Bundle) {
// ...
Button startButton = findViewById(R.id.start_button);
startButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
// The launcher with the Intent you want to start
mStartForResult.launch(new Intent(this, ResultProducingActivity.class));
}
});
}
-코틀린
val startForResult = registerForActivityResult(StartActivityForResult()) { result: ActivityResult ->
if (result.resultCode == Activity.RESULT_OK) {
val intent = result.data
// Handle the Intent
}
}
override fun onCreate(savedInstanceState: Bundle) {
// ...
val startButton = findViewById(R.id.start_button)
startButton.setOnClickListener {
// Use the Kotlin extension in activity-ktx
// passing it the Intent you want to start
startForResult.launch(Intent(this, ResultProducingActivity::class.java))
}
}
- 리절트
val sendIntent = Intent()
sendIntent.putExtra("callback", "테스트")
sendIntent.putExtra("menu", "어디로이동")
activity?.setResult(Activity.RESULT_OK, sendIntent)
activity?.finish() // 이거 중요
참고자료:
[1] startActivityForResult deprecated java,https://blog.daum.net/gomahaera/26
[2] 활동에서 결과 가져오기, https://developer.android.com/training/basics/intents/result?hl=ko#java
반응형
'안드로이드' 카테고리의 다른 글
[Android] EdtitText 필터 적용, 이모지 및 특수문자 입력 차단 (0) | 2021.11.23 |
---|---|
[Android] data Binding + liveData 적용 주의 ui not updated (1) | 2021.11.11 |
[Android] DPI 별 기준 해상도. (0) | 2021.10.18 |
[Android] 리싸이클러 뷰 구현하기. (0) | 2021.10.04 |
[Android] Android local html 불러오기 (web으로 callback) (4/4) (0) | 2021.09.30 |