안드로이드 앱 개발 - 추가 구현 1

kkomin·2023년 8월 7일
0

Android Studio

목록 보기
7/44

📺 추가구현 화면 구성

  1. 회원 가입페이지에서 입력한 아이디/비밀번호가 로그인 화면으로 돌아올 때 자동 입력되는 기능! Hint! registerForActivityResult 를 알아봅시다.

  2. 5장의 사진을 등록합니다. (drawable 폴더)

  3. 자기소개 페이지가 시작될 때 5장 중 랜덤으로 1장의 사진이 표시됩니다.


⚡ 자동 입력 기능 - RegisterForActivityResult

RegisterForActivityResult 함수를 이용하면 다른 activity를 실행하고 그 activity로부터 결과를 받을 수 있다. 구현하고자 1번 기능을 이를 활용하면 구현이 가능하다. 사용방법을 정리해봤다.


(1) ActivityResult를 받기 위한 Callback

SigninActivity 에서 registerForActivityResult 함수를 이용해 callback 을 등록해준다. callback 에서는 result 로 받아온 값, 받아올 데이터 값을 어떻게 사용할지 정의해주면 된다.

받아온 result를 이용해 data에 쉽게 접근이 가능하다.

import 밑에, 즉, class 밖에 변수인 지역변수를 선언해준다.

RegisterForActivityResult 함수를 사용한다. resultCodeRESULT_OK라면 data를 받아오도록 설정해준다.

그리고 CallBack 코드를 구현해준 뒤, 버튼 눌렀을 때 ActivityResultLauncher가 실행되도록 호출해주면 된다.

✅ 기존의 strId, strpw, strname은 제거하고 지역변수인 signId, signPW, signName을 사용해주면 된다.


(2) ActivityResult를 주기 위한 SetResult

SignUpActivity에서는 보낼 데이터만 보내주면 끝이다 ! 쉬울거라 생각했는데 처음 공부하는 함수라 그런지 로그인 버튼을 눌렀을 때 아이디와 비밀번호가 일치하지 않는 문제 때문에 애먹었다.. 지역변수 너 덕분이야.

setResult(RESULT_OK, intent)로 하나만 적어주면 된다.


⚡ 자동 입력 기능 추가 구현 방법

hint인 RegisterForActivityResult 함수를 사용해봤는데, 이 함수가 코드도 간략해지고 간편하기 때문에 사용하기도 했지만, 이외의 방법으로는 intent 사용이 있다.

  1. SignUpActivity에서 SigninActivity로 데이터를 전달하기 위해 필요한 Intent를 생성하고 putExtra() 메서드를 이용해 데이터를 추가해준다.
  1. SigninActivity에서 전달받은 데이터를 받아오고, 받아온 데이터를 editText에 설정해준 뒤, getStringExtra( ) 메서드를 사용해 데이터를 추출해주면 된다.

💻 자동 입력 기능 실행 화면


📷 사진 랜덤으로 표시

에이 이건 그냥 랜덤으로 만들어주면 되는거네 ~ ? 가위바위보 같이 랜덤하게 설정하는 코드를 많이 만들어봤으니까 간단하네 !

(1) image 배열 생성

image들을 랜덤으로 바뀌게 해줄 것이기 때문에 image들을 배열에 넣어준다.

(2) showImage 함수 생성

👉 nextInt() : 0 포함 지정된 값은 제외한 값 사이의 난수 정수 값을 가져오는 함수

(3) showImage 함수 호출

만들었던 showImage 함수를 호출해주면 된다.


💻 최종 실행 화면

내일은 HomeActivity에 있는 아이콘 이미지를 누르면 해당 사이트로 이동하게 추가로 구현할 예정! 거의 다 끝나서 너무 신난다 🔥

profile
소소한 코딩 일기

0개의 댓글