Android

    [Do it! 안드로이드 앱 프로그래밍 #9] 인텐트, 플래그 그리고 부가 데이터 사용하기

    09-1 인텐트 살펴보기 바로 앞 실습에서 인텐트는 다른 액티비티를 띄우거나 기능을 동작시키기 위한 수단으로 사용했다. 즉, 무언가 작업을 수행하기 위해 명령하거나 데이터를 전달하는 데 사용했다. 이 과정을 조금 더 자세히 설명하면 인텐트를 만든 후 startActivity나 startActivityForResult 메서드를 호출하면서 인텐트를 시스템에 전달했다. 그러면 시스템은 그 인텐트 안에 들어 있는 명령을 확인하고 액티비티를 띄운 것이다. 9-1-1 인텐트의 역할과 사용 방식 .android.content 패키지 안에 정의되어 있는 인텐트는 앱 구성 요소 간에 작업 수행을 위한 정보를 전달하는 역할을 한다. 안드로이드 앱의 구성 요소는 네 가지로, 액티비티(Activity), 서비스(Service..

    [Do it! 안드로이드 앱 프로그래밍 #8] 여러 화면 만들고 화면 간 전환하기

    08 여러 화면 만들고 화면 간 전환하기 대부분의 앱은 여러 화면으로 구성되어 있고 화면을 전환하며 실행된다. 그리고 화면은 액티비티로 구현한다. 액티비티를 소스 코드에서 띄울 때는 startActivity 메서드 또는 startActivityForResult 메서드를 사용한다. startActivity 메서드는 액티비티에서 새 액티비티를 띄우기만 할 때 사용하고, startActivityForResult 메서드는 새 액티비티에서 원래의 액티비티로 돌아오면서 새 액티비티의 응답을 받아 처리해야 하는 경우에 사용한다. app > 우클릭 > New > Activity > Empty Activity > Activity name 입력 > Finish XML 파일과 소스 코드 파일이 두 개씩 만들어졌다. 하나의 ..

    [Do it! 안드로이드 앱 프로그래밍 #7] 레이아웃 인플레이션 이해하기

    07 레이아웃 인플레이션 이해하기 안드로이드 앱은 화면 배치를 알려주는 XML 레이아웃 파일과 화면의 기능을 담당하는 소스 코드 파일로 분리하여 개발해야 한다. 이렇게 하면 관리가 수월해지기 때문이다. 그리고 두 파일은 setContentView 메서드가 연결해 준다는 것을 예전에 배웠다. 앱이 실행될 때 XML 레이아웃의 내용이 메모리에 객체화되고 객체화된 XML 레이아웃을 소스 파일에서 사용한다. XML 레이아웃의 내용이 메모리에 객체화되는 과정을 인플레이션(Inflation)이라고 한다. XML 레이아웃은 앱이 실행되는 시점에 메모리에 객체화되기 때문에 setContentView 메서드가 호출되기 전에 XML 레이아웃에 정의된 버튼을 참조하지 못한다. 그래서 이 setContentView 메서드가 ..

    [Do it! 안드로이드 앱 프로그래밍 #6] 토스트, 스낵바, 대화상자 그리고 프로그레스바 사용하기

    06-1 토스트, 스낵바 그리고 대화상자 사용하기 토스트는 간단한 메시지를 잠깐 보여주었다가 없어지는 뷰로 앱 위에 떠 있는 뷰라고 할 수 있다. 쉽고 간단하게 사용할 수 있으며 디버깅 등의 목적으로도 사용할 수 있다. 특히, 앱이 화면에서 사라지더라도 필요한 메시지가 그대로 표시되므로 앱의 상태와 관계없이 보여줄 수 있다는 장점이 있다. 토스트 메시지를 만들어서 보여주는 전형적인 방법: Toast.makeText(Context context, String message, int duration).show(); 토스트의 위치와 여백을 지정하는 메서드: public void setGravity (int gravity, int xOffset, int yOffset) public void setMargin (..

    [Do it! 안드로이드 앱 프로그래밍 #5] 이벤트 처리 이해하기

    05 이벤트 처리 이해하기 5-1 이벤트 처리 방식 손가락으로 화면을 터치하면 터치 이벤트(Touch Event)가 발생한다. 실제 버튼이나 소프트 키패드를 누르면 키 이벤트(Key Event)가 발생한다. 터치 이벤트는 생각보다 복잡하기 때문에 쉽게 처리할 수 있도록 클릭 이벤트(Click Event)를 별도로 제공한다. 첫째 마당에서는 소스 코드에서 정의한 onButton1Clicked 메서드를 버튼의 onClick 속성에 추가했었다. 이번에는 XML이 아니라 소스 코드에서 클릭 이벤트를 처리하도록 setOnClickListener 메서드를 이용한다. 이와 같은 이벤트 처리 방식을 위임 모델(Delegation Model)이라고 부른다. ① 뷰를 상속하여 새로운 클래스를 정의할 때 메서드를 재정의 해..

    [Do it! 안드로이드 앱 프로그래밍 #4] 기본 위젯과 드로어블 사용하기

    04-1 기본 위젯 다시 한번 자세히 공부하기 4-1-1 텍스트뷰 자세히 살펴보기 텍스트뷰는 화면에서 글자를 보여주는 역할을 한다. -text: 텍스트뷰의 문자열을 설정할 수 있다. text 속성은 반드시 지정해야 한다. text 속성을 추가하는 방법은 text 속성 값으로 직접 문자열을 넣는 방법과 app > res > values 폴더에서 strings.xml 파일에 작성한 문자열을 지정하는 방법이 있다. 다국어 지원이 필요할 때 strings.xml 파일로 분리한 후 XML 파일에서 참조하는 방법을 사용한다. strings.xml 파일에 정의된 문자열은 text 속성에서 @string/...와 같은 형식으로 참조한다. -textColor: 텍스트뷰에서 표시하는 문자열의 색상을 설정한다. 색상 설정은..

    [Do it! 안드로이드 앱 프로그래밍 #3] 레이아웃 익히기

    03 레이아웃 익히기 03-1 안드로이드에 포함된 대표적인 레이아웃 살펴보기 레이아웃 이름 설명 제약 레이아웃 (ConstraintLayout) 제약 조건(Constraint) 기반 모델 연결선을 제약 조건으로 하여 화면을 구성하는 방법 안드로이드 스튜디오에서 자동으로 설정하는 디폴트 레이아웃 리니어 레이아웃 (LinearLayout) 박스(Box) 모델 한 쪽 방향으로 차례대로 뷰를 추가하며 화면을 구성하는 방법 뷰가 차지할 수 있는 사각형 영역을 할당 상대 레이아웃 (RelativeLayout) 규칙(Rule) 기반 모델 부모 컨테이너나 다른 뷰와의 상대적 위치로 화면을 구성하는 방법 제약 레이아웃을 사용하게 되면서 상대 레이아웃은 권장하지 않음 프레임 레이아웃 (FrameLayout) 싱글(Sing..

    [Do it! 안드로이드 앱 프로그래밍 #2] 안드로이드 스튜디오와 친숙해지기

    02 안드로이드 스튜디오와 친숙해지기 02-1 안드로이드 스튜디오 제대로 익히기 Ctrl + Tap: 스위처(Switcher), 윈도우의 Alt + Tap과 같이 현재 열려 있는 창을 빠르게 이동할 수 있게 해준다. Crtl + Q: API 문서 정보를 띄워준다. Ctrl + P: 파라미터에 대한 정보를 띄워준다. Ctrl + Shoft + F: 코드를 검색하는 창을 띄워준다. 02-2 뷰와 뷰의 크기 속성 이해하기 뷰의 속성 뷰(View)는 화면 안에 들어가는 각각의 요소를 말하며 일반적으로 컨트롤이나 위젯이라고 불린다. 이러한 뷰를 여러 개 포함하고 있는 것을 뷰그룹(ViewGroup)이라고 한다. 뷰그룹은 뷰를 상속했기 때문에 뷰의 속성을 모두 물려받았다. 뷰그룹 역시 하나의 뷰라고 했을 때 또 다..