본문 바로가기

Android Tutorial/Activity

[Android Tutorial #05] Activity 전환하기(액티비티/화면 전환하기)


안드로이드 튜토리얼 목차 - Android Tutorial List

[Android Tutorial #05] Activity 전환하기(액티비티/화면 전환하기)

제가 처음에 안드로이드 프로그래밍을 하면서 가장 궁금했던건, 화면을 어떻게 다른 화면으로 바꾸는가! 였습니다.

터치나 클릭, 데이터 입력과 결과값 출력, 그리고 화면전환을 할 수 있다면, 이후의 애플리케이션 개발은 상당히 수월해 질 수 있죠.

그래서 버튼 클릭에 대해서 살펴본 후, 바로 화면 전환에 대해서 알아보려합니다.
(이전글 : [Android Tutorial #04] Button(버튼)과 클릭 이벤트])
 


 Activity와 View(Layout xml) 만들기

이번 주제는 앞에서 말했다시피, 액티비티의 전환(화면의 전환)입니다.

하나의 화면에서 다른 화면으로 바꾸기 위해, 2개의 Activity, 그리고 2개의 View가 필요하겠죠? 

애플리케이션이 시작할때 보여지는 액티비티를 FirstActivity.java, 그리고 FirstActivity에서 이동하려는 액티비티를 SecondActivity.java 라고 해봅니다.
또 이 액치비티들과 연결될 View들을, first_activity.xml, second_activity.xml 이라고 해보죠. 


그리고 아래 그림과 같은 쌍으로 사용하게 되겠죠.


이번 예제에서 2개의 java파일(Activity), 2개의 xml(layout)파일을 만들고 수정할 겁니다. 



아래 스크린샷들을 따라서 프로젝트를 만들어 봅시다.

 

- 프로젝트 이름은 AndoirTutorial05라고 정해보았습니다.



Build Target은 Andoird 2.2를 선택해줍니다.
(아직은 2.2의 API를 사용하지 않아 하위 버전도 괜찮습니다.)




- 패키지 이름은 각각 개별적으로 정의해도 문제없습니다.
- Create Activity에서 Activity의 이름을 FirstActivity로 변경했습니다.



- 프로젝트가 정상적으로 생성되었는지를 왼쪽의 Project Explorer에서 확인합니다.



처음에 xml의 이름을 first_activity.xml, second_activity.xml이라고 하기로 했으니, main.xml의 이름을 first_activity.xml로 바꾸어줍니다.
 

- Mac 단축키 : Command + Option + R
- Windows 단축키 : Alt + Shift + R



main.xml의 이름을 바꾸어주면, FirstActivity에서 다음과 같이 에러가 날것입니다.
setContentView(R.layout.main)을 setContentView(R.layout.first_activity)로 변경해줍니다.





이제 SecondActivity.java와 second_activity.xml을 만들어줄 차례입니다.

먼저 second_activity.xmllayout폴더에 생성합니다.



Project Explorer에서 만들어져 있는걸 확인한 후, second_activity.xml을 수정해줍니다.

 

res/layout/second_activity.xml 





이번에는 SecondActivity를 추가할 차례입니다. AndroidManifest를 열어보도록 하죠.

잘 따라오셨다면 아래와 같은 화면을 보실 수 있을겁니다.
여기에서 하단의 Application Tab을 선택합니다.

 



애플리케이션 탭의 왼쪽 아래에 보면 아래와 같은 부분이 보입니다.
Application Nodes라는 영역이죠. [Add...] 버튼을 클릭합니다.




그럼 아래 스크린샷 처럼 선택하는 창이 생기는데,
우리는 Activity를 만들려고 하는 것이니 Activity를 선택하고 [OK]버튼을 클릭합니다.





여기까지 하셨으면, Application Nodes 영역에 Activity가 추가된 것이 보입니다.
이 액티비티를 선택하면 오른쪽에 Attributes for Activity 영역이 나타납니다.
보기만해도 Name*을 누르고 싶게 생겼죠? 눌러줍니다.




클래스를 새로 생성하는 창이 뜹니다. 클래스의 이름을 정하는 Name부분에 SecondActivity라고 이름을 입력한 후 [Finish]버튼을 눌러 생성해줍니다.




Project Explorer를 보면 만들려던 파일들이 모두 만들어져 있는것을 볼 수 있습니다.

 





 Activity와 xml 연결하기, 화면 전환하기

이제 만들어준 Activity들과 xml을 연결할 차례입니다.

Activity는 setContentView(~~) 라는 메소드를 통해, layout폴더에 있는 xml 파일을 Activity에 연결하고, xml에 만들어둔 뷰를 화면에 보여 줄 수 있습니다.




first_activity.xml을 수정합니다.

수정한 first_activity.xml




수정한 first_activity.xml과 FristActivity.java를 연결해줍니다.

수정한 FirstActivity.java 





프로젝트를 실행해봅니다.

아래와 같이 애플리케이션이 실행된 모습을 볼 수 있습니다.
버튼을 눌러 이동해 봅니다. 





두번째 액티비티로 이동한 모습입니다.
그런데 위에서 xml에 입력해 놓은 텍스트가 보이지 않는군요?

아! SecondActivity와 second_activity.xml을 연결해 주지 않았습니다. 




기본으로 생성된 SecondActivity.java




수정한 SecondActivity.java




이제 다시 프로젝트를 실행시켜봅시다.

이번에는 만들어둔 대로 화면이 제대로 출력된 것을 확인할 수 있습니다.

 

 



처음 액티비티를 생성하고 setContentView(R.layout.file_name);을 해주지 않으면, 액티비티는 화면에 아무것도 보여주지 못합니다. 기초적인것이지만, 반드시 기억해주어야하는 것이죠.

새롭게 액티비티를 생성해서, 이 액티비티에 보여줄 화면을 res/layout/ 폴더에 xml로 만들어주고, 액티비티와 연결해주기만 하면 됩니다.



프로젝트 압축파일

AndroidTutorial05.zip