목록교재 & 강좌/안드로이드 프로그래밍 정복 (16)
설.현.아빠
오늘은 카메라와 위치정보를 이용하여 특정지역에 진입하였을 경우 알려주는 테스트 어플을 제작해 보았다. 우선은 매니페스트 부터 훑어보자. *. AndroidManifest.xml 항상 생각하는건데 퍼미션 너무 많아.... Activity 두개 Receiver하나 설정했다. C25_Camera Activity는 메인 Activity이고, LocationAlert 는 팝업을 출력할때 사용할 테마가 적용된 Activity이다. LocationAlertReceiver 는 특정지역에 진입하였을 경우 BroadCast를 수신받도록한 Receiver이다. *. C25_Camera.java package lee.hyeontae.C25_Camera; import java.io.File; import java.io.File..
주소록 소스는 많다... But!!! 내 맘에 꼭드는 소스가 없다... 만들었다...어렵다..ㅋㅋㅋ사진도 추가를 하고 싶지만....차후에^^ private void getContactData() { ContentResolver cr = getContentResolver(); Cursor contacts_cursor = cr.query( ContactsContract.Contacts.CONTENT_URI, new String[]{ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME}, ContactsContract.Contacts.HAS_PHONE_NUMBER + "=1", null, ContactsContract.Contacts.DI..
활용편 - 그렇다면.....ArrayList를 DB에서 활용하려면?? ID Name Comment 0 이순신 내 죽음을 적에게 알리지 말라 1 홍길동 아버지를 아버지라 부르지 못하고 2 단군 널리 인간을 이롭게 하라 자~DB에 저장될 내용은 위와 같다. 또한 Layout에는 ListView를 두고 3개 행을 출력하도록 한다. Add를 할때마다 ListView에도 하나의 행이 늘고, DB에도 저장이 된다. 그럼....ArrayList가 할일은...?????? 매번 해당 어플이 처음 시작시 DB의 내용을 Read해서 ArrayList에 저장한다. 그리고!! Add를 할때마다 ArrayList와 DB에 동일하게 데이터를 저장해 주도록 한다. Delete가 문제다. 보통 ListView에서 삭제를 할 경우 Co..
본 예제는 터치 이벤트에 대한 처리가 목적이었으나 내가 공부한건 ArrayList이다. 요게 여러가지 방면에서 사용되는데 DB를 사용할 때에도 응용할 수 있다. 그래서 이번기회로 ArrayList를 확실히 이해하고 넘어가자. package lee.hyeontae.FreeLine; import java.util.ArrayList; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.os.Bundle; import android.view.MotionEvent;..
쓸줄은 안다...하지만 왜 그렇게 쓰는지 이해가 필요하다.. 먼저...가장 무식한 방법이 아래에 있다. package lee.hyeontae.HandlerAccess; import android.app.Activity; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.LinearLayout; import android.widget.TextView; public class HandlerAccess extends Activity { @Override public void onCreate(Bun..
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 바로 나오네!!! 그래~이거거든~~이게 직빵이지~~ 드뎌 내가 사용하는 방법이 나왔다. 제일 마지막에...주인공은 제일 마지막에 등장하는가...아님...제일 꼬져서...?ㅋ 내가 쓰던 방법이 가장 함축된 형태이고...객체의 이름조차 줄 필요 없는 방법이고...특정 뷰에 대한 이벤트 핸들러로만 쓸 경우에 사용되고.. 별도의 클래스 선언도 필요없고.....그리고...그리고...안드로이드에서는 주로 이 방법으로 이벤트 핸들러를 작성한다는.....젠장 나만 이거 쓰는거 아녔어. 다들 이거 쓰는 거였어^^ 내가 잘 쓰고 있었네.ㅋㅋㅋ좀 복잡하다고는 하는데, 개발자 자신은 이게 더 편하다. ⑥ 익명 이너 클래스의 임시 객체 사용 public class StartAndroid extends Ac..
⑤ 익명 이너 클래스 사용 먼 이름이 저리 거창한가... 왜???왜 익명인가????엄밀히 말하자면 익명 이너 클래스가 아니라 익명의 객체아닌가? 아..책에서는 이름 없는 서브 클래스 타입의 객체.. ㅋㅋ 거봐 객체잖어~~~ 아래 문구를 보자. private View.OnTouchListener TouchListener = new View.OnTouchListener() { 이것도 클래스라고 하는지는 모르지만...내가 보기엔 클래스라고 하기엔 좀... 암튼 위와 동일한 기능의 클래스를 작성해보자면 아래와 같을 것이다. class MyClass implements View.OnTouchListener { ... } MyClass TouchListener = new MyClass(); 머...단순화 했네. ㅋ..
④ 뷰가 리스너 구현 짠 소스를 보고 헐....했다...왜 이렇게 해야하는건데~~~ 아니 View를 상속받는 Class를 생성해서 그 Class에 Listener를 implements시킬 필요가 있는가?? 즉, protected class MyView extends View implements View.onTouchListener 이렇게 할 수 있다는데... 책에서 말하길 어떤 이유로!! 뷰를 상속 받았다면...머 onDraw를 재정의하였다면 뷰에 implements 시키면...더 깔끔하다나?ㅋㅋ 구지 Listener 구현만을 위해 View를 상속받고 Listener를 Implements 시킬 필요는 없다. 때와 장소에 맞게 행동을 해야지^^ public class StartAndroid extends ..