Presentation is loading. Please wait.

Presentation is loading. Please wait.

10. 액티비티와 인텐트 제목. 10. 액티비티와 인텐트 제목 액티비티의 개념을 파악한다. 인텐트의 개념과 활용법을 익힌다. 액티비티 생명주기에 대해 알아본다.

Similar presentations


Presentation on theme: "10. 액티비티와 인텐트 제목. 10. 액티비티와 인텐트 제목 액티비티의 개념을 파악한다. 인텐트의 개념과 활용법을 익힌다. 액티비티 생명주기에 대해 알아본다."— Presentation transcript:

1

2 10. 액티비티와 인텐트 제목

3 액티비티의 개념을 파악한다. 인텐트의 개념과 활용법을 익힌다. 액티비티 생명주기에 대해 알아본다.

4 01 액티비티와 인텐트 기본 02 액티비티와 인텐트 응용

5 1. 액티비티와 인텐트 기본 ▶안드로이드 4대 컴포넌트[1/2]
액티비티(Activity) : 화면을 구성하는 가장 기본적인 컴포넌트 서비스(Service) : 액티비티와 상관없이 백그라운드에서 동작하는 컴포넌트 브로드캐스트 리시버(Broadcast Receiver) : 문자 메시지 도착, 배터리 방전, SD카드 탈부착, 네트워크 환경 변화 등이 발생하면 방송 신호 보냄

6 1. 액티비티와 인텐트 기본 ▶안드로이드 4대 컴포넌트[2/2]
콘텐트 프로바이더(Content Provider) : 응용프로그램 사이에 데이터를 상호 공유하기 위한 컴포넌트 콘텐트 프로바이더의 정보를 제공하는 방법으로는 URI(Uniform Resource Identifier)가 있음

7 1. 액티비티와 인텐트 기본 ▶액티비티 개요[1/11]
액티비티 추가 일반적으로 액티비티 하나당 XML 파일 하나를 만들어서 사용 MainActivity.java 코드는 Activity 클래스를 상속받으므로 MainActivity.java 를 액티비티라고 부름

8 1. 액티비티와 인텐트 기본 ▶액티비티 개요[2/11]
안드로이드 프로젝트 생성 프로젝트 이름 : Project10_1 패키지 이름 : com.cookandroid.project10_1

9 1. 액티비티와 인텐트 기본 ▶액티비티 개요[3/11]
화면 디자인 및 편집 activity_main.xml에 클릭하면 다른 액티비티가 나오게 하는 버튼을 하나 만듦

10 1. 액티비티와 인텐트 기본 ▶액티비티 개요[4/11]
화면 디자인 및 편집 새로운 액티비티에서 사용할 second.xml을 만든 후 배경색을 바꾸고 <돌아가기> 버튼을 하나만 만듦

11 1. 액티비티와 인텐트 기본 ▶액티비티 개요[5/11]
Java 코드 작성 및 수정 새로운 액티비티인 SecondActivity.java 파일을 만듦

12 1. 액티비티와 인텐트 기본 ▶액티비티 개요[6/11]
Java 코드 작성 및 수정 액티비티의 필수 메소드인 onCreate( )를 추가한 후 자동완성시킴 second.xml을 화면에 보여주는 코드를 한 행 추가

13 1. 액티비티와 인텐트 기본 ▶액티비티 개요[7/11]
Java 코드 작성 및 수정 second.xml의 <돌아가기>를 클릭하면 현재 액티비티를 끝내는 코드 추가 현재 액티비티를 종료 SecondActivity는 메인 액티비티에서 호출할 것이므로 SecondActivity를 종료하면 다시 메인 액티비티가 나타남

14 1. 액티비티와 인텐트 기본 ▶액티비티 개요[8/11]
Java 코드 작성 및 수정 메인 액티비티에서 SecondActivity를 호출하는 코드를 추가

15 1. 액티비티와 인텐트 기본 ▶액티비티 개요[9/11]
프로젝트 실행 및 결과 확인 완성된 프로젝트를 실행하면 다음과 같은 오류가 발생 안드로이드에서는 사용될 액티비티를 AndroidManifest.xml에 꼭 등록해야 함 메인 액티비티(MainActivity)는 자동으로 등록되지만, 추가한 SecondActivity 는 별도로 등록해줘야 함

16 1. 액티비티와 인텐트 기본 ▶액티비티 개요[10/11]
[반복]화면 디자인 및 편집 AndroidManifest.xml 파일을 열고 SecondActivity를 등록 아래 코드를 </application> 바로 윗 행에 코딩

17 1. 액티비티와 인텐트 기본 ▶액티비티 개요[11/11]

18 1. 액티비티와 인텐트 기본 ▶명시적 인텐트[1/14]
인텐트(Intent) 안드로이드 4대 컴포넌트가 상호 간에 데이터를 주고 받기 위한 메시지 객체 명시적 인텐트와 암시적 인텐트로 구분

19 1. 액티비티와 인텐트 기본 ▶명시적 인텐트[2/14]
명시적 인텐트와 데이터의 전달 명시적 인텐트 : 다른 액티비티의 이름을 명확히 지정할 때 사용하는 방법 메인 액티비디에서 인텐트에 데이터를 실어서 넘긴 후, 세컨드 액티비티에서 받은 데이터를 처리

20 1. 액티비티와 인텐트 기본 ▶명시적 인텐트[3/14]
래이팅바 예제

21 1. 액티비티와 인텐트 기본 ▶명시적 인텐트[4/14]
래이팅바 예제 Java 코드

22 1. 액티비티와 인텐트 기본 ▶명시적 인텐트[5/14]
안드로이드 프로젝트 생성 프로젝트 이름 : Project10_2 패키지 이름 : com.cookandroid.project10_2 화면 디자인 및 편집 적당한 명화 이미지 9개를 /res/drawable-hdpi에 복사

23 1. 액티비티와 인텐트 기본 ▶명시적 인텐트[6/14]
메인 액티비티에서 사용할 activity_main.xml 수정 바깥 리니어레이아웃 안에 리니어레이아웃 3개, 버튼 1개를 생성 layout_weight를 3:3:3:1로 함 3개의 레이아웃에는 각각 3개의 이미지 뷰를 넣고 layout_weigh는 1:1:1로 함 필요하면 이미지뷰에 적당한 layout_margin(ex : 5dp)을 줌 9개 이미지뷰의 id는 iv1~iv9, 버튼의 id는 btnResult로 함

24 1. 액티비티와 인텐트 기본 ▶명시적 인텐트[7/14]
서브 액티비티에서 사용할 result.xml을 /res/layout 폴더에 생성 바깥은 테이블레이아웃으로 설정 stretchColumns 속성을 0으로 함 <TableRow>를 그림의 숫자와 동일한 (9+1)개로 하고, 각 테이블 로우에는 텍스트뷰 1개, 래이팅바 1개를 생성 마지막 테이블 로우에는 <돌아가기> 생성 텍스트뷰의 id는 tv1~tv9로, 래이팅바의 id는 rbar1~rbar9로, 버튼의 id는 btnReturn으로 함

25 1. 액티비티와 인텐트 기본 ▶명시적 인텐트[8/14]
Java 코드 작성 및 수정 새로운 액티비티인 ResultActivity.java 파일을 만듦 onCreate( ) 메소드를 추가한 후 setContentView(R.layout.result)를 추가 AndroidManifest.xml에 등록

26 1. 액티비티와 인텐트 기본 ▶명시적 인텐트[9/14]
onCreate() 내부에 필요한 변수 선언 그림을 클릭할 때마다 투표 수를 저장할 9개짜리 배열을 선언하고 0으로 초기화 이미지뷰 위젯을 저장할 9개짜리 배열을 선언 이미지뷰 위젯의 id인 R.id.iv1 ~ iv9 를 저장한 배열을 선언 그림의 이름을 저장한 9개짜리 배열을 선언

27 1. 액티비티와 인텐트 기본 ▶명시적 인텐트[10/14]
onCreate() 내에 이미지 클릭 시 동작할 내용 코딩 각 이미지뷰에 대해 클릭 이벤트 리스너 생성 이미지뷰가 9개이므로 반복문을 사용 이미지 클릭하면 각 이미지의 투표수가 증가하도록 설정 이미지 클릭할 때마다 해당 이미지 이름과 누적된 투표수도 토스트 메시지로 보여줌

28 1. 액티비티와 인텐트 기본 ▶명시적 인텐트[11/14]
onCreate() 내에 <투표 종료>에 대해서 클릭 이벤트 리스너 생성 인텐트를 생성, 인텐트에 투표수 배열과 그림 이름 배열을 넣은 후 결과 액티비티 호출

29 1. 액티비티와 인텐트 기본 ▶명시적 인텐트[12/14]
서브 액티비티인 ResultActivity.java 파일의 onCreate( ) 메소드 안을 코딩 메인 액티비티에서 보낸 인텐트 받고, 넘겨 받은 투표 결과 배열과 그림 이름 배열 저장

30 1. 액티비티와 인텐트 기본 ▶명시적 인텐트[13/14]
서브 액티비티 나머지 코딩 result.xml의 텍스트뷰 9개와 래이팅바 9개의 위젯 변수 배열을 선언 텍스트뷰 id를 저장한 배열 변수, 래이팅바의 id를 저장한 배열 변수를 선언 XML 파일의 텍스트뷰 및 래이팅바를 위젯 변수에 대입 텍스트뷰 위젯 변수에 넘겨받은 그림 이름 을 적용 래이팅바에는 넘겨받은 투표 결과를 적용 버튼을 클릭하면 서브 액티비티를 종료 즉, 메인 액티비티로 돌아간다.

31 1. 액티비티와 인텐트 기본 ▶명시적 인텐트[14/14]

32 2. 액티비티와 인텐트 응용 ▶양방향 액티비티[1/6]
양방향 액티비티와 데이터의 전달 메인 액티비티에서 세컨드 액티비티로 데이터를 넘긴 후에 다시 세컨드 액티비티에서 메인 액티비티로 데이터를 돌려주는 경우

33 2. 액티비티와 인텐트 응용 ▶양방향 액티비티[2/6]
양방향 데이터 전달 예제 메인 액티비티의 에디트텍스트의 두 수를 세컨드 액티비티에서 더한 후에 다시 메인 액티비티로 돌려줌

34 2. 액티비티와 인텐트 응용 ▶양방향 액티비티[3/6]
양방향 데이터 전달 예제

35 2. 액티비티와 인텐트 응용 ▶양방향 액티비티[4/6]
양방향 데이터 전달 예제 메인 액티비티 Java 코드

36 2. 액티비티와 인텐트 응용 ▶양방향 액티비티[5/6]
양방향 데이터 전달 예제 세컨드 액티비티 Java 코드

37 2. 액티비티와 인텐트 응용 ▶양방향 액티비티[6/6]

38 2. 액티비티와 인텐트 응용 ▶암시적 인텐트[1/5]
암시적 인텐트(Implicit Intent, 묵시적 인텐트) 약속된 액션(Action)을 지정하여 안드로이드에서 제공하는 기존 응용프로그램 을 실행하는 것 전화 거는 것을 예로 들면 전화번호를 인텐트로 넘긴 후에 전화 걸기 응용프로 그램이 실행되는 것과 같음

39 2. 액티비티와 인텐트 응용 ▶암시적 인텐트[2/5]
암시적 인텐트(Implicit Intent, 묵시적 인텐트) 911에 응급전화를 거는 형식 전화 걸기를 하려면 AndroidManifest.xml에 다음과 같이 권한을 추가해야 함

40 2. 액티비티와 인텐트 응용 ▶암시적 인텐트[3/5]
암시적 인텐트 예제

41 2. 액티비티와 인텐트 응용 ▶암시적 인텐트[4/5]
암시적 인텐트 예제 Java 코드(1/2)

42 2. 액티비티와 인텐트 응용 ▶암시적 인텐트[5/5]
암시적 인텐트 예제 Java 코드(2/2)

43 2. 액티비티와 인텐트 응용 ▶액티비티 생명주기[1/11]
액티비티의 생성부터 소멸까지의 주기를 뜻함 안드로이드 응용프로그램은 화면이 작아 동시에 여러 개의 액티비티(화면)가 나올 수 없음 앞에 나오는 화면 하나만 활성화된 상태이고 나머지는 모두 비활성화된 상태 로 남게 됨

44 2. 액티비티와 인텐트 응용 ▶액티비티 생명주기[2/11]

45 2. 액티비티와 인텐트 응용 ▶액티비티 생명주기[3/11]

46 2. 액티비티와 인텐트 응용 ▶액티비티 생명주기[4/11]
안드로이드 프로젝트 생성 프로젝트 이름 : Project10_3 패키지 이름 : com.cookandroid.project10_3

47 2. 액티비티와 인텐트 응용 ▶액티비티 생명주기[5/11]
메인 액티비티에서 사용할 activity_main.xml 수정 버튼 2개를 생성하고 id는 btnDial, btnFinish로 함

48 2. 액티비티와 인텐트 응용 ▶액티비티 생명주기[6/11]
메인 액티비티인 MainActivity.java를 간단히 코딩 <전화걸기>를 클릭하면 다른 액티비티인 전화걸기 화면나오게 설정 <끝내기>를 클릭하면 메인 액티 비티를 종료

49 2. 액티비티와 인텐트 응용 ▶액티비티 생명주기[7/11]
메인 액티비티에 액티비티 관련 메소드 자동완성

50 2. 액티비티와 인텐트 응용 ▶액티비티 생명주기[8/11]
프로젝트 실행 및 결과 확인 로그캣 화면이 보이지 않으면 Android Studio 아래쪽 탭 중에서 ‘Android’를 클릭 하고 ‘Device | logcat’ 탭을 선택

51 2. 액티비티와 인텐트 응용 ▶액티비티 생명주기[9/11]
프로젝트 실행 및 결과 확인 로그필터 등록

52 2. 액티비티와 인텐트 응용 ▶액티비티 생명주기[10/11]
프로젝트 실행 및 결과 확인 응용프로그램을 실행하여 로그캣을 확인 만약 로그캣에 내용이 보이지 않으면 실행 단계마다 왼쪽 ‘액티비티’ 필터를 클릭

53 2. 액티비티와 인텐트 응용 ▶액티비티 생명주기[11/11]
다음의 각 단계마다 로그캣 확인 <전화걸기>를 클릭해서 다른 액티비티가 나타난 후 돌아가기 버튼을 눌러서 메인 액티비티로 돌아간 후 <끝내기>를 눌러 메인 액티비티를 마친 후

54


Download ppt "10. 액티비티와 인텐트 제목. 10. 액티비티와 인텐트 제목 액티비티의 개념을 파악한다. 인텐트의 개념과 활용법을 익힌다. 액티비티 생명주기에 대해 알아본다."

Similar presentations


Ads by Google