본문 바로가기

무한코딩/안드로이드 어플리케이션

[날지 무한코딩] 안드로이드 스튜디오 액티비티 만들기, 액티비티 이동

어플을 사용하면 버튼을 눌렀을때 화면이 다른 화면으로 전환되는것을 보셨을 겁니다.


우리가 어플을 사용하면서 보는 화면단위를 흔히 "액티비티(Activity)"라고 합니다. 


화면이 전환이 된다는건 액티비티가 전환이 되었다고 보시면 되겠죠?


또, Layout을 이용한 화면 전환도 있긴 하지만 사용빈도가 낮기 때문에 오늘은 새로운 액티비티를 생성하는 법과 버튼을 이용하여 액티비티 이동하는 방법을 알려드리려 합니다.


Button 생성 하는 법 : http://redmuffler.tistory.com/425


항상 말씀드리듯, 저도 했으니까 모두 하실 수 있습니다!!



우선 프로젝트를 생성해야겠죠?


생성합니다.!!



여전히 Empty 액티비티를 사용합니다.



왼쪽 탐색기 툴에서 MainActivity의 자바 소스가 들어있는 디렉토리(폴더)를 우클릭합니다.


New - Activity - Empty Activity 를 클릭합니다.


액티비티는 Java 소스 + xml 레이아웃이 한 쌍이여야 되기 때문에 액티비티를 새로 생성하실땐 이런 편리한 기능을 사용하여 코딩시간을 단축시켜야 합니다!



그러면 새로운 액티비티의 이름을 설정하는 창이 뜹니다.


원하는 이름으로 하시면 됩니다.



자 그러면 Main2Activity라는 java 파일과 Layout에는 activity_main2.xml이라는 파일이 생성된것을 확인 할 수 있습니다.


얘네 둘은 한쌍입니다.!!


여기서 만약 앱을 실행한다면 어떻게 될까요? 그냥 똑같습니다. 


새로 추가한 액티비티는 어디갔냐고요? 새로만든 액티비티는 프로그램 내에는 존재하겠지만 우리는 새로운 액티비티가 어디서 나올지 딱히 설정하지 않았습니다.



지금부터는 버튼을 누르면 새로만든 액티비티가 뜨게 할겁니다.


이제 코딩을 해봅시다!



기존에 생성되어있던 mainactivity에 버튼을 추가합니다.


버튼에 이벤트를 넣으려면 id 또는 onClick 이름이 있어야 한다고 지난 시간에 말씀드렸습니다.


둘중 원하는것을 설정 합시다!


!


이제 버튼에 이벤트를 넣어야겠죠? 


button을 activity_main에서 만들었으니 이벤트를 넣는 것도 MainActivity에서 해야합니다!


전 onClick을 사용하여 이벤트를 생성하였습니다.


여기서 Intent라는 요상한 단어가 등장하는데 그냥 여기저기 연결시켜주는 다리같은 친구라고 생각하시면 됩니다.


Intent가 사용된 줄(Linenum 18)의 뒤쪽을 보시면 Main2Activity.class라 되어 있는데 아까 생성한 액티비티의 이름입니다.


Main2Activity라는 class와 연결하라는 명령어 입니다. 


참고로 위에 9번째 줄을 보시면 class MainActivity 라고 되어 있습니다. 만약 다른 액티비티에서 메인 액티비티로 접근할때엔 MainActivity.class를 사용하겠다고 유추 하실수 있습니다. 



이번엔 새로 만든 레이아웃 화면입니다.  (지금 보는 창이 뭔지 헷갈린다 싶으시면 왼쪽 파일경로를 잘 보시면 따라 가실 수 있습니다.)


새로 생성한 액티비티는 기존 화면과 차별화 시키기 위하여 텍스트를 넣었습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#fab2b2"
    android:orientation="vertical"
    tools:context="com.tistory.redmuffler.blogproject_001.Main2Activity">
 
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="이동된 2번 액티비티입니다."
        android:textSize="50dp" />
 
 
</LinearLayout>

cs



그리고 한번 실행해 보겠습니다.



잘 되는것을 확인합니다. 수고하셨습니다~~