본문 바로가기

안드로이드 개발

[Part4] Activity 화면 전환하기(Android, Kotlin)

이전까지 간단한 Layout, View, Activity를 다루어 보았다.

이번엔 화면을 전환기능을 구현해보자. 

첫번째 화면 MainActivity에서 버튼을 누르면 다음 두번째 화면으로 넘어가는 기능을 구현해보려고 한다.

 

activity_main.xml

 

첫번째 화면 activity_main.xml에는 간단한 버튼객체만 생성을 해주자.

MainActivity에서 해당 Button클릭에 대한 이벤트처리를 하기 위해서 id값을 기억해두어야 한다

  • Button id : changeActivityButton

activity_second.xml 만들기

 

  • app>res>layout폴더 우클릭>new>Layout Resource File 클릭

파일명을 activity_second.xml로 입력해주면 생성된다. 2번째 화면이라는걸 알기 위해 간단한 TextView만 생성해놓자.

 

 

SecondActivity.kt 만들기

 

두번째 화면과 연결시킬 Activity파일을 만들어보자. 앞선 게시글들에 다루었던 내용의 복습이되는 부분이다.

layout xml파일과 activity파일은 연결시킬때는 setContentView()함수를 사용한다.

  • app>java>com."package이름" 우클릭 > new > Kotlin Class/File 클릭

파일명을 SecondActivity로 입력하면 Class기본구조가 만들어지는데, 여기에 기본상속구조를 MainActivity와 동일하게 만들고 setContentView()함수를 사용하여 activity_second.xml과 연결시켜준다.

 

Android Manifest파일 설정

 

사용할 Activity를 추가하려면 app>manifests>Android Manifest파일에 해당 Activity의 정보를 추가해줘야한다. 추가하지 않았을때는 해당 화면을 Create하는 중에 앱이 중지될거다.

아래와 같이 AndroidManifest.xml파일에 SecondActivity부분의 정보를 추가해주면 된다.

 

MainActivity.kt 작성 

 

여기까지 준비가 되면 마지막으로 MainActivity에 코드만 작성해주면 된다.

이 코드의 핵심요소는

  • setContentView()함수를 이용한 activity_main.xml 연결
  • findViewById()함수를 이용한 Button객체 연결
  • setOnClickListener를 이용한 버튼클릭 이벤트 처리
  • Intent를 이용한 화면전환
  • 이중에서도 intent를 이용한 화면전환 설정 부분이 이번 글의 핵심이다.

Intent()함수에 매개변수로 현재의 Context와 변경할 Activity의 이름을 넣어서 Intent를 정의/선언해주고,

해당 변수를 화면을 전환해주는 함수 startActivity()의 매개변수로 넣어서 실행하면 화면이 전환된다.

 


다음화면으로 변수값 전달하기
MainActivity.kt 코드 추가

 

number라는 변수를 선언해서 다음화면으로 넘기기 위해,

intent변수에 putExtra()를 이용한것을 볼 수 있다.

 

 

SecondActivity.kt 코드 추가

 

MainActivity에서 putExtra()함수를 통해 전달한 number변수를

다음 화면 SecondActivity에서는 getDoubleExtra()함수를 통해서 전달받는다.

그리고 해당 변수값을 Toast메세지를 띄움으로써 제대로 전달됐는지를 확인할 수 있다.