인공지능을 포함한 컴퓨터 사이언스 영역 배우기 위해서 항상 부딪히는 일이 컴퓨터 언어를 익히는 일이다. 대학 초년생 기준으로 Visual Studio를 사용한 C 언어 실습이 대표적일 것이다. 아주 기초적인 내용들을 배워 Homework 나 프로젝트를 수행하기 위해서는 이론 공부와 함께 Visual Studio 사용에 상당히 익숙해질 필요가 있다. 하지만 초보자가 이 선까지 도달하는 데에 2주가 걸리는데, 만약 적절한 가이드가 없이 Visual Studio를 한 두주 접해 보면 선을 못 넘겨 포기하기 십상이다. 요즈음 유행하는 신종코로나19의 잠복 주기도 2주라고 하는데 공교로워 보인다. Visual Studio를 다룰 때 겪었던 증상과 비슷한 증상이 안드로이드 스튜디오를 배우는 데에도 나타난다. 그 난이도는 좀 더 높은 듯하다. 지금 현재 안드로이드 블로그 관련 글이 12번째인데 이 지점이 바로 거기에 해당한다. 이 선을 넘기면 안드로이드 스튜디오 학습에 큰 진전이 있을 것이다.
Intent 코딩은 앱인벤터에서는 본 적이 없지만 스마트폰 코딩에서는 너무나 흔하게 일어나므로 반드시 학습해야 할 코딩이다. Intent 라 함은 스마트 폰 한 화면에서 버튼을 조작하여 다른 화면으로 넘어가는 작업에 해당한다.
MainActivity의 역할은 res≻layout 폴더에 들어 있는 스마트폰 화면에 해당하는 activity_main.xml을 사용하여 on Create, onStart, on Resume, ∙∙∙명령 실행이 순차적으로 이루어지게 된다. 한편 2개의 스마트폰 화면을 사용할 경우에는 한 화면에서 다른 화면으로의 전환이 필수적이며 이때에는 MainActivity 외에 추가로 Activity 가 필요하게 된다. 이르 SubActivity 라 하자. 안드로이드 스튜디오의 java 폴더에서 아래와 같이 SubActivity를 추가하자. 추가작업 과 더불어 res≻layout 에 activity_main.xml 외에 activity_sub.xml 이 생성됨을 확인하도록 한다.
activity_main.xml에서 LinearLayout으로 변경하고 Button 하나를 설정하자.
button.set에서 setOnClickListener를 선택 클릭하자.
setOnClickListener 생성 후 즉시 ()에 new Vi를 입력하면 나타나는 선택 옵션 중에서 View.OnClickListener{...}을 클릭하면 아래와 같이 자동 채움이 일어나며 여기에 화면 전환을 위한 Intent를 코딩하도록 하자.
Intent 코드 작성과정에서 헤더 영역에 import android.content.Intent; 명령에 의해 Intent 라이브러리가 설정됨에 유의하자. MainActivity 나 SubActivity 모두 Class에 해당하겠지만 확장자 처리과정에서 this는 현재 편집 중인 MainActivity를 의미하며 SubActivity 는 class 로 처리함에 주의한다.
한편 activity_sub.xml 에서도 유사하게 LinearLayout을 취하고 화면 전환이 될 경우 TextView를 사용하여 “Received A Message From MainActivity” 를 출력할 수 있도록 하자.
앱을 실행하면 다음의 첫 번째 화면이 나타나며 BUTTON을 클릭하면 오른쪽의 SubActivity 화면으로 전환된다.
이와 같은 Intent 코딩 사례는 이미 안드로이드 스튜디오 Camera 와 SimpleCamera 코드에 다음과 같이 포함되어 있었음에 유의하자.
첨부된 코드를 다운받아 실행해 보도록 하자.
'안드로이드 스튜디오' 카테고리의 다른 글
3.1 안드로이드 스튜디오 Text2Speech (0) | 2020.02.22 |
---|---|
2.13 2주면 포기할 당신을 위하여: 안드로이드 스튜디오에서 Intent 코딩: II (0) | 2020.02.21 |
2.11 안드로이드 스튜디오 3.5.3 Kotline Class 코드 출력 (0) | 2020.02.19 |
2.10 안드로이드 스튜디오 Kotline MainActivity on∙∙ ∙ 명령 모니터링 예제 (0) | 2020.02.19 |
2.9 안드로이드 스튜디오 AnalogClock 코딩 예제 (0) | 2020.02.18 |