태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

이클립스에서 안드로이드 액티비티 추가하기

2009.03.01 23:04


안드로이드용 어플리케이션을 개발하려면 "하나의 액티비티" 만으로는 제데로된 어플리케이션을 개발할 수 없습니다. 이번 강좌에서는 액티비티를 추가하는 방법에 대해 알아보도록 하겠습니다.

액티비티를 추가해주기 위해서는 아래의 두 가지 작업을 수행해주어야 합니다.

  • 메니페스트 파일(AndroidManifest.xml)에 액티비티 등록하기
  • 액티비티 소스 코드 만들기

1. 메니페스트 파일에 액티비티 등록하기

안드로이드에서 액티비티를 호출하기 위해서는 먼저 메니페스트 파일에 액티비티가 등록되어 있어야 합니다. 메니페스트 파일에 액티비티를 등록해주기 위해, 먼저 메니페스트 파일(AndroidManifest.xml) 파일을 연 후, Application 탭을 클릭합니다.

이클립스 ADT로 열어본AndroidManifest.xml


여러가지 속성을 설정할 수 있는 화면들과 함께 어플리케이션의 여러 구성요소들을 등록할 수 있는 Application Nodes 화면이 화면 좌측 하단에 있습니다. 이곳에서 액티비티 뿐만 아니라 다른 액티비티 구성요소 (서비스, 컨텐트 프로바이더 등)도 추가해줄 수 있습니다.

액티비티를 추가하기 위해 Application Nodes 부분의 Add... 버튼을 클릭합니다.




Add.. 화면을 클릭하면 다음과 같은 대화상자가 나타나는데, 이곳에서 "Activity"를 클릭합니다.
"OK" 버튼을 클릭한 후, 추가된 Activity를 선택한 후 오른쪽의 Attributes 화면을 보면 다음과 같은 화면이 보일 것입니다.




2. 액티비티 소스 코드 만들기

메니페스트 파일에 액티비티를 선언하였으니, 이 액티비티의 실질적인 동작을 구현할 자바 소스 코드를 만들어야 합니다.
파란색으로 되어있는 Name* 을 클릭하여 새 클래스를 만들어줍시다.


위와 같은 대화상자가 뜨게 될 것입니다. 다른 것은 특별히 건드릴 필요가 없고, 클래스의 이름 (일반적으로 액티비티의 이름과일하게 설정합니다) 을 입력합니다. 이름을 입력했으면, Finish 버튼을 누릅시다.


Finish 버튼을 누르면, 다음과 같이 새로운 코드 파일이 생성이 됩니다. 처음 프로젝트를 만들 때와 동일하게 onCreate() 메소드까지 추가되어있습니다. :) 단, 액티티의 화면을 표시해주는 메소드인 setContentView()메소드가 추가되어있지 않으므로, 이 상태로 이 액티비티를 호출하면 화면에는 아무것도 표시되지 않게 됩니다.

 여기까지 하셨다면, 호출 대상을 명확히 지정하는 명시적 인텐트(Explicit Intent)를 이용하여 이 액티비티를 호출할 수 있습니다. 하지만, 인텐트 필터를 정의하지 않았기에 암시적 인텐트(Implicit Intent)를 통해 호출될 수는 없습니다. 

인텐트에 대한 자세한 설명 및 암시적 인텐트에 대한 내용은 아래의 글을 참고하세요.

저작자 표시 비영리 변경 금지
신고

커니 어플리케이션 구성/액티비티(Activity) , , , , , , , ,

  1. 왼쪽 layout 항목에서 오른쪽클릭후 new -> other -> XML 이렇게 해주시면 됩니다.
    강좌 항상 감사드려요~ ^^

  2. 생각보다 가까운 곳에 답이 있었군요 -ㅁ-
    좋은 정보 감사드립니다 :)

  3. Blog Icon
    웅하

    정말 감사합니다 ^^ 새 클래스 못만들어서 고생하고 있었는데 ^^

    초보에게 정말 중요한 강좌 같습니다 ^^

  4. 저도 저걸 하는데 꽤나 어려움을 겪었었는데..
    도움이 되었다니 기쁩니다 ㅎㅎ

  5. Blog Icon
    레이첼

    ㅠㅠ 각프로젝트 마다 Android Manifest.xml이보이긴 하는데요
    이클립스 ADT에 있는 Android Manifest라는게뭔가요ㅠ?


    이클립스에서프로젝트폴더에 있는Android Manifest,xml열면 저런 화면이 아니던데용

  6. 안드로이드 어플 개발은 보통 이클립스 ADT(Android Development Tools)를 설치한 것을 전제로 합니다.

    아마, 지금 이클립스에도 ADT가 설치된 상태일 것입니다.

    이클립스상에서 보면 여러 가지 화면을 볼 수 있는데요, 특히 xml파일은 레이아웃 파일은 레이아웃 미리보기 / 코드 보기 두개를 볼 수 있고, Androidmanifest.xml 파일 또한 각종 설정을 쉽게 변경할 수 있는 화면과, 소스 그대로를 보여주는 화면 두 가지로 볼 수 있습니다.

    스크린샷 아래쪽에 보시면 Androidmanifest.xml이라는 탭이 보이실 겁니다. 그걸 눌러주시면 소스를 볼 수 있고, 다른 것들을 보려면 원하는 화면 탭을 눌러주시면 됩니다.

  7. 하나하나 잘 배워가고 있습니다.
    좋은 글 항상 감사합니다.
    홍대생 엘리트 역시 짱이십니다. ㅋ

  8. 헉.... 과찬의 말씀이십니다... ㅋㅋㅋ

  9. 트래픽 걸고 퍼갔습니다.
    좋은 정보 감사합니다.

  10. Blog Icon
    왕밤빵

    커니님 글 항상 잘 보고 있습니다..
    궁금한게 있어서요..

    어플이 2개 있을경우에
    어플1에서 Activity를 3개 만들어서 어플2에서 자동으로 어플1을 실행 시키려고 하는데;;
    방법을 찾을 수가 없어서요 ㅠ

    어플1을 따로 설치 하지 않아도 어플2에서 어플1을 실행시키려구요..

    좀 부탁드려요

  11. 정확히 질문의 의도를 잘 모르겠습니다.

    애플리케이션 1의 액티비티
    - A1, A2, A3

    가 있을 때, 애플리케이션 2에서 '자동으로' 애플리케이션 1을 실행한다는 것이 어떤 의미인가요?

    우선 '자동으로'가 정확히 어떤 의미인지 모르겠고,
    둘째, 애플리케이션을 실행한다는 것이 '애플리케이션1의 MAIN 액티비티(맨 처음 실행되는 액티비티)인가요?

    우선 확실한 것부터 답변을 드리자면, 서로 다른 애플리케이션에 있는 애플리케이션 컴포넌트(액티비티 등)을 실행하려면 암시적 인텐트(Implicit intent)를 사용해야 합니다.

    흔이 사용하는 명시적 인텐트(Explicit Intent)로는 호출이 불가능하죠. 블로그 내에 암시적 인텐트 사용 방법을 다룬 글이 있으니 참고해보세요~

  12. 아아... 정말 돌고돌아.. 몇주간의 삽질을 하다... 이걸 못찾아서 하나의 액티비티에서 여러 레이아웃에서 작동하는걸 전부짰는데...ㅠㅠ 강좌 너무 감사합니다.

  13. Blog Icon
    인삼

    와 정말 안드로이드 공부하는데 보석과 같은 강좌 올려놓아주셨네요. 즐겨찾기 추가해두고 강좌 보면서 개발해야겠네요. 정말 감사드립니다.

  14. Blog Icon
    나이먹은 개발자

    이부분이 항상 고민이었습니다.
    어쩌다보면 되고 안되고 하던 문제였는데 정말 감사합니다.
    덕분에 50넘은 개발자가 힘을 얻었습니다 .

  15. Blog Icon
    개발개발

    추가하는데 프롤로그에서는 컨텐츠 허용이 안된다고하는데 이럴땐 어떻게합니까

  16. Blog Icon

    구글이 기존 이클립스 기반을 없애고 인텔리j 기반의 안드로이드 스튜디오로 옮겼는데 안드로이드 스튜디오에서 AndroidManifest에 액티비티를 추가해주는 방법을 못찾겠습니다.