회원 가입페이지에서 입력한 아이디/비밀번호가 로그인 화면으로 돌아올 때 자동 입력되는 기능! Hint! registerForActivityResult
를 알아봅시다.
5장의 사진을 등록합니다. (drawable
폴더)
자기소개 페이지가 시작될 때 5장 중 랜덤으로 1장의 사진이 표시됩니다.
RegisterForActivityResult
함수를 이용하면 다른 activity
를 실행하고 그 activity
로부터 결과를 받을 수 있다. 구현하고자 1번 기능을 이를 활용하면 구현이 가능하다. 사용방법을 정리해봤다.
SigninActivity
에서 registerForActivityResult
함수를 이용해 callback
을 등록해준다. callback
에서는 result
로 받아온 값, 받아올 데이터 값을 어떻게 사용할지 정의해주면 된다.
받아온
result
를 이용해data
에 쉽게 접근이 가능하다.
import
밑에, 즉, class
밖에 변수인 지역변수를 선언해준다.
RegisterForActivityResult
함수를 사용한다. resultCode
가 RESULT_OK
라면 data
를 받아오도록 설정해준다.
그리고 CallBack
코드를 구현해준 뒤, 버튼 눌렀을 때 ActivityResultLauncher
가 실행되도록 호출해주면 된다.
✅ 기존의
strId
,strpw
,strname
은 제거하고 지역변수인signId
,signPW
,signName
을 사용해주면 된다.
SignUpActivity
에서는 보낼 데이터만 보내주면 끝이다 ! 쉬울거라 생각했는데 처음 공부하는 함수라 그런지 로그인 버튼을 눌렀을 때 아이디와 비밀번호가 일치하지 않는 문제 때문에 애먹었다.. 지역변수 너 덕분이야.
setResult(RESULT_OK, intent)
로 하나만 적어주면 된다.
hint인 RegisterForActivityResult
함수를 사용해봤는데, 이 함수가 코드도 간략해지고 간편하기 때문에 사용하기도 했지만, 이외의 방법으로는 intent
사용이 있다.
SignUpActivity
에서 SigninActivity
로 데이터를 전달하기 위해 필요한 Intent
를 생성하고 putExtra()
메서드를 이용해 데이터를 추가해준다.SigninActivity
에서 전달받은 데이터를 받아오고, 받아온 데이터를 editText에 설정해준 뒤, getStringExtra( )
메서드를 사용해 데이터를 추출해주면 된다.에이 이건 그냥 랜덤으로 만들어주면 되는거네 ~ ? 가위바위보 같이 랜덤하게 설정하는 코드를 많이 만들어봤으니까 간단하네 !
image들을 랜덤으로 바뀌게 해줄 것이기 때문에 image들을 배열에 넣어준다.
👉 nextInt() : 0 포함 지정된 값은 제외한 값 사이의 난수 정수 값을 가져오는 함수
만들었던 showImage 함수를 호출해주면 된다.
내일은 HomeActivity에 있는 아이콘 이미지를 누르면 해당 사이트로 이동하게 추가로 구현할 예정! 거의 다 끝나서 너무 신난다 🔥