액티비티간 이동시 데이터를 전달하는 방식으로 런처 함수를 직접 만들어서 해당 함수 내부에서 처리할 수 있습니다.
MainActivity
binding.uploadMemoBtn.setOnClickListener{
//Main 화면 내 버튼에 intent 설정하기
var intent = Intent(this, MemoEditActivity::class.java)
//런처 시작
MemoEditActivityLauncher.launch(intent)
}
//액티비티가 돌아왔을 때 처리할 코드 작성
private val MemoEditActivityLauncher : ActivityResultLauncher<Intent> = registerForActivityResult(
ActivityResultContracts.StartActivityForResult()
){
//다시 메인으로 돌아왔을 때의 코드가 result_ok를 반환했다면
if(it.resultCode == Activity.RESULT_OK){
//이전 화면에서의 데이터 반환
val intent = it.data
val returnTodo = intent!!.getStringExtra("todo").toString()
binding.editImportantMemo.setText(returnTodo)
}
}
SubActivity
binding.saveBtn.setOnClickListener{
val todo = binding.editTodo.text.toString().trim()
val detail = binding.editDetail.text.toString().trim()
if(todo.length != 0 && detail.length != 0){
intent.putExtra("todo", todo)
intent.putExtra("detail", detail)
//MainActivity로 돌아가는 코드
//첫 파라미터는 상태코드, 두번째는 intent
setResult(RESULT_OK, intent);
//액티비티 종료
finish()
}else{
Toast.makeText(this, "빈칸 모두 입력해주세요.", Toast.LENGTH_SHORT).show()
}
}
'app개발 > android' 카테고리의 다른 글
| [Android] Data Class에서 Room 사용시 Entity에서 Default값 설정하기 (0) | 2022.05.10 |
|---|---|
| [Android] Beacon에서 Dialog띄우기 (0) | 2022.05.05 |
| [Android] MainActivity외의 시작 화면 만들기 (0) | 2021.12.09 |
| [Android] Service를 사용해 백그라운드에서 기기상태 확인하기 (0) | 2021.12.01 |
| [Android] Thread & Handler (0) | 2021.11.28 |