본문 바로가기

오탈자 정보

[단계별 예제로 배우는 안드로이드 프로그래밍]_오탈자

현재까지 발견된 위 책의 오탈자 정보와 오류 사항 그리고 보다 매끄러운 문장을 위해 수정한 내용들입니다. 불편을 끼쳐드려 죄송합니다.

혹시 이 외의 오탈자 정보를 발견하시는 분이 계시면 출판사 메일 jeipub골뱅이gmail.com이나  저자 지원 페이지인 http://www.androidside.com/bbs/board.php?bo_table=801로 연락주시면 고맙겠습니다.

최종수정일자: 2011년 8월 22일
2011년 6월 10일 2쇄본 오탈자
아래의 오탈자 사항은 추후 3쇄 시에는 모두 반영하도록 하겠습니다. 불편을 끼쳐드려 다시 한 번 죄송하다는 말씀을 드립니다.

11쪽 그림 1-3의 1행 3열에서
Medium density(16) ==> Medium density(160)
 
26쪽 TIP&TECH의 두 번째 줄
구해서 설치하며 된다. ==> 구해서 설치하면 된다.
 
33쪽 그림 2-3에서 맨 우측의 
onResume() ==> onRestart()
 
36쪽 그림 2-4의 두 번째 줄의 맨 윗 항목
bindtService() ==> bindService()
 
52쪽 그림 3-1에서
View Container 항목 설명 부분에서 쉼표 하나 제거
TabHost,, ==> TabHost,
 
Layout 항목 설명 부분에서 쉼표 추가
FrameLayout ==> FrameLayout,
 
94쪽 가운데의 android:layout_weight="1" 아래 3번째 줄
적색 텍스트뷰에는 2를 뷰여하고
==>
적색 텍스트뷰에는 2를 부여하고 
 
103쪽 예제 코드 아래 문단 두 번째 줄
부록 D, ==> 부록 B,
 
115쪽 ThemeDemoA1.java의 소스 코드에서
        super.onCreate(savedInstanceState);
        setTheme(R.style.Theme_big);
        setContentView(R.layout.main);
==> 
        setTheme(R.style.Theme_big);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

 
132쪽 참고 프로젝트 제목 수정
EditTextDemoA1 ==> EditTextDemoA2 
 
170쪽 참고 프로젝트 제목 수정
TouchEventDemoA1 ==> MultiTouchDemoA1
 
172쪽 예제 코드 제목 수정
TouchEventDemoA1.java ==> MultiTouchDemoA1.java
 
197쪽 첫 번째 줄
갤러리(Gallery)는 수직으로 이미지를
==>
갤러리(Gallery)는 수평으로 이미지를
 
199쪽 코드 맨 아래 주석에서
이미지 리소스 아이드를 설정한다.
==>
이미지 리소스 아이디를 설정한다.
 
203쪽 코드 가운데 부분 주석에서
이미지 리소스 아이드를 설정한다.
==>
이미지 리소스 아이디를 설정한다.
 
228쪽 res/layout/main.xml 코드를 아래로 교체
SlidingDrawerDemoA2.java  <- 코드 타이틀로 지정
 
package com.androidside.slidingdrawerdemoa2;
 
import android.app.Activity;
import android.os.Bundle;
 
public class SlidingDrawerDemoA2 extends Activity {       
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }   
}
 
245쪽 표 android.widget.Toast 클래스의 메소드의 두 번째 항목
Wi-Fi 상태를 반환한다. ==> 토스트를 생성한다.
resId  리소스 아이디 ==> text  문자열
 
251쪽 API Method Summary 제목
android.widget.Toast 클래스의 메소드
==>
android.app.AlertDialog.Builder 클래스의 메소드
 
255쪽 (3) AlterDialog에 체크 리스트 보여주기 절의 2~3번 째 줄 
이렇게 생성된 리스트의 아이템들은 오직 한 개만 선택될 수 있으며,
==>
이렇게 생성된 리스트의 아이템들은 여러 개 선택할 수 있으며,
 
268쪽 첫 줄에서
섹션 06의 ==> 섹션 08

291쪽 코드 박스 아래 두 번째 줄
설정 액티비키를 ==> 설정 액티비티를
 
332쪽 두 번째 줄
동시에 여려 작업을 ==> 동시에 여러 작업을
 
427쪽 하단 코드 제목
레이아웃 XML - /res/layout/intentcaller2.xml
==>
레이아웃 XML - /res/layout/intentcallee2.xml
 
435쪽 세 번째 줄에서
(3서브) 비디오 실행 ==> 비디오 실행
 
435쪽 NOTE의 제목
오디오 실행 ==> 비디오 실행
 
436쪽에서 NOTE의 제목
오디오
실행 ==> 브라우저 실행
 
437쪽 NOTE의 제목
오디오 실행 ==> 이메일 보내기(여러 명의 수신자와 참조)
 
498쪽 API METHOD SUMMARY의 설명 세 번째 줄에서
지정된 위도와 경고 ==> 지정된 위도와 경도
 
512쪽에서
C:\Users\kairo96\.android>keytool -list ?alias androiddebugkey -keystore debug.keystore -storepass
android -keypass android
==>
C:\Users\kairo96\.android>keytool -list -alias androiddebugkey -keystore debug.keystore -storepass
android -keypass android
 
557쪽  하단에서 두 군데
그리고 전화를 끊었을 때는 CALL_STATE_IDEL이다.
==>
그리고 전화를 끊었을 때는 CALL_STATE_IDLE이다.
 
CALL_STATE_RING -> CALL_STATE_OFFHOOK -> CALL_STATE_IDEL
==>
CALL_STATE_RING -> CALL_STATE_OFFHOOK -> CALL_STATE_IDLE
 
590쪽 하단 코드 전체를 아래 내용으로 교체
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
        <EditText            
            android:id="@+id/viewarea"
            android:height="300dp"
            android:scrollbars="vertical"                                 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />
        <Button
            android:text="Get Url"
            android:id="@+id/geturl"           
            android:width="100dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right" />
</LinearLayout>
 
599쪽 그림 5-145 그림의 stop 버튼 옆에 있는 코드에서
startService .....
==>
stopService .....
 
606쪽 그림 5-150에서
인트페이스 ==> 인터페이스
* 두 군데가 잘못되었음
 
625쪽 첫 번째 문단에서
시간이 변화는 ==> 시간이 변하는
실시간으로 변화는 ==> 실시간으로 변하는
 
730쪽 표 맨 하단에서
TouchEventDemoA1 ==> MultiTouchDemoA1


최종수정일자: 2011년 6월 1일
2011년 4월 15일 1쇄본 오탈자

아래의 오탈자 사항은 추후 2쇄 시에는 모두 반영하도록 하겠습니다. 불편을 끼쳐드려 다시 한 번 죄송하다는 말씀을 드립니다. (참고로, 함께 제공되는 소스 코드 파일에는 다행히 이상이 없습니다)

뒷표지 좌측 특징 소개 부분
이 책의 주요 특징의 다음과 같다. ==> 이 책의 주요 특징은 다음과 같다.

뒷표지 하단 분야 부분
모바일 프로그래밍 / iOS ==> 모바일 프로그래밍 / 안드로이드

49쪽
컴포넌트 비활성화 시점에 관련된 표와 그 아래의 한 문단의 위치가 바껴 있습니다.
문장이 위로 올라가고 표가 아래로 내려와야 정상입니다.

49쪽 표 분류항목에서
활성화 시점 ==> 비활성화 시점

64쪽 이미지 버튼의 참고 프로젝트 명 아래에서
Buttion과 기능이 비슷함 ==> Button과 기능이 비슷함

94쪽 프레임 레이아웃 바로 위에서
적생이 두 칸, 나머지가 ==> 적색이 두 칸, 나머지가

140쪽 두 번째 코드 박스 제목에서
레이아웃 XML - /res/layout/main.xml ==> SpinnerDemoA2.java 

141쪽 그림 4-25
amdrpod.R.layout.simple_spinner_item ==> android.R.layout.simple_spinner_item

152쪽 코드 위에서 15번 째 줄(빈행 제외)
@Override  <== 삭제되어야 합니다.

165쪽  하단의 ButtonClickDemoA3 박스 내의 코드를 아래 코드로 대체(이전 코드와의 다른 점은 아래 붉은색으로 표시)
package com.androidside.buttonclickdemoa3;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
 
public class ButtonClickDemoA3 extends Activity {
    EditText edit;           
    TextView text;       

    @Override   
    protected void onCreate(Bundle savedInstanceState) {       
        super.onCreate(savedInstanceState);       
        setContentView(R.layout.main);               

        edit = (EditText) findViewById(R.id.edit);               
        text = (TextView) findViewById(R.id.text);    
       
    }    
    
    public void clickButton(View v) {   
    
        text.setText(edit.getText());           
    }
}

186페이지 그림 4-54에서
<TabHost android:id="android:id/tabhost">
==>
<TabHost android:id="@android:id/tabhost">

226쪽
res/layout/main.xml 코드 전체 삭제(2중으로 게재되었었습니다)

261쪽 하단의 TIP & TECH 박스 안 맨 아래에 다음의 코드 한 줄 추가
LinearLayout row = (LinearLayout) inflater.inflate(R.layout.list_row, null);
 

275쪽 ContextMenuDemoA1.java 코드 박스 하단에서 8-10행(빈 줄 포함)
case MENU_ONE: selectedMenu = "menu_one";
case MENU_TWO: selectedMenu = "menu_two";
case MENU_THREE: selectedMenu = "menu_three"; 
==>
case MENU_ONE: selectedMenu = "menu_one"; break;
case MENU_TWO: selectedMenu = "menu_two"; break;
case MENU_THREE: selectedMenu = "menu_three"; break;

290쪽 코드 박스 제목 수정
PrefEdit.java ==> PrefDemoB1.java

308쪽 android.graphics.Bitmap 클래스의 메소드 표에서 첫번째 메소드 설명 부분
주어진 비트맵에서 부분 비트맵을 봔환한다.
==>
주어진 비트맵에서 부분 비트맵을 반환한다.

310쪽  박스 내 코드에서 아래 부분 공백 라인 추가
import android.view.View;
public class CanvasDemoB2 extends Activity {
==>
import android.view.View;
 
public class CanvasDemoB2 extends Activity {


316쪽 하단의 AndroidManifest.xml 코드 박스에서
하단 두 번째 줄 코드가 현재 8자 들여쓰기되어 있는데, 좌측에서 4자 들여쓰기로 수정되어야 함.
        <uses-permission android:name=”android.permission.INTERNET” />
==>
    <uses-permission android:name=”android.permission.INTERNET” />

329쪽 맨 아래 코드 아래에 다음의  내용을 추가
그리고 setListener() 메소드에서는 버튼을 찾아서 이전(webView.goBack()), 이후(webView.goForward()), 리로딩(webView.reload()), 홈(webView.loadUrl(HOME_URL))을 구현하면 된다. 이 코드는 매우 단순하므로 생략하도록 하겠다. 만약 잘 모르겠다면, 이 책의 소스 코드를 살펴보기 바란다.

354쪽 박스 내의 아래 내용 불필요하므로 모두 삭제
package com.androidside.listviewdemoa0;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;


367쪽 맨 아랫줄에서
기존 코드를 먼저 작성해보겠다. ==> 기본 코드를 먼저 작성해보겠다.

368쪽
1)첫 번째 코드 박스 하단에서 내용을 좀 더 명확히 하기 위해 아래에서 적색 라인 추가

    public void onListItemClick(ListView parent, View v, int position, long id) {
        selected.setText(cars[position]);
    }
    // NewArrayAdapter 클래스 생략
}
 
2) 두 번째 코드 박스 두 번째 줄에서 
// 생략 ==> // 기본 코드 생략

388쪽 맨 아랫줄에서
클릭하면 파일이 저장되면 된다. ==> 클릭하여 파일을 저장하면 된다.

398쪽 첫 번째 API 제목 수정
View.OnClickListener 클래스의 메소드
==>
android.database.sqlite.SQLiteDatabase 클래스의 메소드

398쪽 첫 번재 API 표에서 맨 하단에 아래의 행 하나를 추가
 

 long insert (String table, String nullColumnHack, ContentValues values)
주어진 values를 테이블 table에 추가한다.
 
매개변수
table  데이터를 추가할 테이블
nullColumnHack  일반적으로 null을 사용하며, null이 아닐 경우는 nullColumnHack에 지정된 이름에 해당하는 컬럼의 값이 존재하지 않을 경우 NULL을 추가한다.
 
반환
새로 추가된 row의 row ID를 반환, 에러가 발생했다면 -1을 반환


563쪽 코드 박스 제목 수정
Androidmanifest.xml ==> AndroidManifest.xml
 
571쪽 코드 박스 제목 수정
Androidmanifest.xml ==> AndroidManifest.xml

625쪽 하단 코드 박스 제목 수정
/res/layout/hellowidget.xml ==> /res/layout/timewidget.xml

704쪽 밑에서 10행 소제목
Android SDK R08 ==> Android SDK R10

717쪽 그림 아래 첫 줄에서
Android SDK Tools, revision 8~ ==> Android SDK Tools, revision 10~
 
717쪽 그림 아래 문단 3번 째 줄 끝부분
SKD Platform...으로 시작하는 ==> SDK Platform...으로 시작하는