안녕하세요.

Android 싸이트에 있는 Notepad 영문버전을 한글로 변환한 것입니다.

원본 링크 : 

http://www.coremodeling.com/android/tutorial/notepad/notepad3.htm


Android Notepad Tutorial 한글 문서[자바모델링]

  • 작성자 : 고덕한(javamodeling@gmail.com)
  • 소속 : 자바모델링(http://www.javamodeling.com)
  • 작성일자 : 2010년 06월 04일

영문으로 되어 있는 Android 의 Notepad Tutorial 을 한글 문서로 변환하여 개발자들이 손쉽게 Android Application 을 작성하는데 쉽게 이해할 수 있도록 작성한다.
영문으로 된 내용을 기반으로 단계별로 작성을 해 나갈것이다.

0. Preparing for the Exercise

이 Notepad 를 작성하기 위해서 Eclipse 를 사용할 것이며, 기본적으로 Android 를 개발하기 위한 환경설정이 되어 있다는 가정하에 이 예제를 작성한다.

이 Notepad 를 위해서 기본적인 설정파일과 클래스를 제공하고 있다. 아래의 절차대로 진행하면 된다.

  • 압축된 파일(zip)을 다운로드 한다. Project exercises archive(.zip)
  • 다운로드한 파일을 적절한 디렉토리에 압축을 푼다.
  • NotepadCodeLab 디렉토리를 살펴본다.

3. Notepad Exercise 3

이번 문서에서는 어플리케이션 상태 데이터를 저장하고 조회하는 life-cycle callback 을 사용할 것이다.

  • Life-cycle event 와 사용하난 방법
  • 어플리케이션 상태를 유지하는 기술

3.1 Step 1

Notepad 의 어플리케이션을 개발하기 위한 기본 환경설정과 코드를 포함하고 있는 소스를 다운로드 받는다.(위의 내용 참고)

File -> New -> Android Project 를 선택하고, Create project from existing source 를 선택한다.

그리고 Locationn 에서 Browse 버튼을 클릭하여, 다운로드해서 압축을 푼 디렉토리에서 Notepadv3 디렉토리를 선택한다. 그러면 자동으로 Project name 이 입력이 된다.

Build Target 은 설정된 AVD 중에서 적절한 것을 선택한다. Application Name 과 Package name 은 자동으로 입력이 되며, Min SDK Version 에 선택된 Build Target 에 맞게 버전 번호를 입력한다.

 

그리고 Finish 버튼을 클릭하면 프로젝트가 생성이 된다.

그리고 아래와 같이 Intent 를 통해서 전달된 title, body 값을 설정하는 부분을 삭제한다.

 

3.2 Step 2

NoteEdit 클래스에서 NoteDbAdapter 를 직접 사용하기 위해서 멤버변수에 변수를 선언하고, onCreate() 메소드에 해당 인스턴스를 참조하는 코드를 추가한다.

 

3.3 Step 3

mRowId 가 savedInstanceState 에 존재하는지를 체크하는 코드를 추가한다.

기존에 있던 코드를 아래와 같이 변경한다.

 

3.4 Step 4

populateField() 메소드를 아래의 위치에 추가한다.

 

3.5 Step 5

onClick() 메소드 수정

아래와 같이 수정한다.

3.6 Step 6

populateFields() 메소드 구현

아래와 같이 메소드를 구현한다.

3.7 Step 7

NoteEdit 클래스에서 다음의 세 개 메소드를 override 한다. 각 Activity 의 상태가 변할 때 호출되는 메소들이다.

onSaveInstanceState() : Activity 가 stop 되고 새로 시작되기 전에 Activity 가 죽을 때 호출된다.

onPause() : Activity 가 종료할 때 호출

onResume() : Activity 가 새로 시작될 때 호출

각각의 메소드들을 아래와 같이 구현

 

3.8 Step 8

saveState() 메소드 구현

Note 상태를 DB 에 저장하기 위한 메소드로써, 아래와 같이 구현한다.

 

3.9 Step 9

Noteapdv3 클래스의 onActivityResult() 메소드를 아래와 같이 구현한다.

이미 NoteEdit 클래스에서 Lifecycle 에 따라서 데이터를 DB에 저장하기 때문에, Notepadv3 클래스에서는 아래 기능만 처리하면 된다.

 

3.10 Step 10

onListItemClick() 메소드 수정

항목을 클릭했을 때는 RowId 값만 조회해서 NoteEdit 클래스로 Intent 에 담아서 보내는 코드만 정의

 

3.11 Step 12

Notepadv3 프로젝트를 선택하고, 오른쪽 마우스 클릭한 다음, Run As -> Android Application 을 선택하여 실행한다.