본문 바로가기

안드로이드 Android

03 첫 번째 애플리케이션

 

이 포스트는 개인적인 공부를 위해 정리하는 포스트입니다.

내용은 모두 Do it 안드로이드 앱 프로그래밍에서 나온 것입니다.

activity_main.xml 파일이 앱의 첫 실행화면의 모습을 결정해준다. 그렇다면 첫 번째 애플리케이션에 등장한 Hello World!는 어디에서 온 것인가?

res/values/strings.xml에 <string>태그로 정의되어 있는 내용이

@string/hello_world로 activity_main.xml에서 참조되고

이 정보가 R.layout.activity_main이라는 파라미터로 참조되어

setContentView라는 함수로 전달된 것이다.

결국 setContentView 이 함수는 xml로 정의된 정보를 화면상에 보여줄 형태를 결정해준다.

 

간단한 응용들

1. 화면에 표시되는 글자를 변경하려면 strings.xml에 <string> 태그 안의 글자를 변경해야 한다.

 

2. 화면에 글자가 아니라 버튼을 넣고 싶다면 화면을 구성하는 xml파일인 activity_main.xml에서

<TextView>태그를 <Button>(여기서 대소문자를 구분해야 함.)로 변경해본다.

markup 랭기지 중 하나인 xml을 이용해 직관적으로 바뀌는 변경할 수 있는 부분이 맘에 드는데

보다 편한 것은 안드로이드가 기초가 되는 코드부터 디자인 패턴을 많이 적용하였기 때문에

쉽게 이해하면서 프로그래밍할 수 있다는 점이다.

 

3. 버튼을 누른 후 액션을 등록해본다.

JAVA에서 배웠던 이벤트 처리 과정이 필요하다.

프로세스가 정해져 있는데

XML 레이아웃 파일에 정의된 버튼에 ID를 추가한다.

android:id="@+id/startBtn"

리소스에 id 정보를 추가한다는 의미이다.

자바 코드에서 레이아웃 파일에 정의된 버튼 객체를 참조한다.

Button startBtn = (Button)findViewById(R.id.startBtn);

여기서 Ctrl+Shift+O(알파벳    )를 누르면 자동으로 eclipse에서 필요한 클래스를

import 해주므로 일종의 팁이라고 생각할 수 있겠다.

이벤트 처리 코드를 추가한다.

Toast 클래스를 이용하면 간단한 메시지 창을 띄울 수 있다.

 

4. 여러 개의 버튼을 등록하고 서로 다른 이벤트에 대한 액션을 부여한다.

버튼을 등록할 때 버튼들이 서로 겹칠 수 있기 때문에

activity_main.xml에서 각 버튼 마다 겹치지 않도록

android:layout_below="@+id/idname" (idname : 버튼의 고유 id)

<Button>태그 안에 넣어 idname버튼 아래에 현재 Button이 위치하도록 지정한다.

다른 방법으로 코딩을 하지 않고도

Graphical Layout에서 손쉽게 버튼을 겹치지 않도록 위치할 수 있다.

Graphical Layout을 통해서도 간단한 layout은 쉽게 구성할 수 있지만

실제 단말에선 다르게 보일 수도 있고 복잡한 layout은 구성하기도 어렵기 때문에

XML 코드를 이용해야 한다.

Intent를 이용해 실행하고자 하는 것을 쉽게 실행 시킬 수 있다.

 

5. 새로운 화면 만들어 주기

새로운 액티비티 만들기 – 기존의 액티비티 복사해서 붙여 넣은 후 작성

새로운 레이아웃 만들기 – 기존의 레이아웃 복사 붙여 넣기

매니페스트에 태그 추가하기 - 새로 정의한 액티비티에 대한 정보 추가

새로운 액티비티 시작 코드 넣기 – 새로운 액티비티를 띄우기 위한 코드 추가