안드로이드 프로젝트 레이아웃을 연습하면서 다시 복습하기 위해 화면전환부터
Linearlayout을 이용하여 화면배치하는것도 연습해보았다.
findViewById가 메모리를 많이 소모한다고하여 뷰바인딩을 이용했다.
먼저 프로젝트를 만들고

build.gradle파일로 이동해서

viewBinding을 true로 설정했다.
저렇게 설정하면 activity 에서 findViewById를 이용해서 일일이
component들을 메모리에 올리지 않아도 된다.
그 후 화면이 전환되는 프로젝트이기에 MainActivity 말고 SubActivity와 그에 딸린 화면(activity_sub.xml)
을 만들었다.

마우스 오른쪽 버튼을 눌러서 저렇게 클릭하면 액티비티와 레이아웃 파일이 동시에 만들어진다.
그 후 이미 뷰바인딩 설정은 마쳤기 때문에
activity_main.xml화면을 만들었다.
그 후 화면을 전환하기 위해 startActivity()메서드를 이용하여 코드를 작성했다.


위와 같이 잘 전환되는것을 확인할 수 있었다.
이제 main화면에서 sub 화면으로 넘어가는것을 처리해야해서
MainActivity.kt 코드에서 일부를 수정했다.
또한 SubActivity.kt파일에서는 데이터를 받고 다시 그 데이터를 넘겨주는
작업까지 고려했다.

이때 메인에서는 값을 키값 "to1"과 "to2"에 담아 보냈고 putExtra()함수를 사용했다.
각각은 String과 int형 데이터를 보냈기 때문에 SubActivity.kt파일에서는

다음과 같이 작성했는데, to2는 int형이기때문에 getIntExtra로 받고 defaultValue를 설정했다.
또한 text필드에 넣는 작업이여서 전체를 toString 형태로 바꿨다.

그 후 버튼을 클릭했을때, 메시지를 적거나 적지 않더라도 다시 원래
화면으로 돌아가기 위해서

변수를 작성하고
(Intent()는 원래 main에서 호출된 것이기에 비워나도 된다)

returnIntent 변수를 통해서(다시 메인으로 돌아가기로 설정한 변수)
데이터(message)를 전달한다.
그리고 성공했을때 성공코드인 RESULT_OK를 결과로 전달하는데 이때 데이터를
담고있는 returnIntent도 같이 보낸다.
그후 finish()를 통해 종료한다.

방금 받은 resultCode가 성공코드(RESULT_OK)코드라면
다음과 같이 실행한다.
data는 null일 수있기때문에 null체크를 해주고 null이아니면 데이터를 키값으로 받아서 그 데이터가
null인지 또 체크를 한다. null이 아니면 토스트 메시지를 띄운다.

'TIL > android' 카테고리의 다른 글
| Activity Lifecycle과 Stack (0) | 2024.03.28 |
|---|---|
| 안드로이드 커뮤니티 사이트 01 (0) | 2024.02.05 |