구성: 19개의 글

안드로이드 앱에서 사용자로부터 값을 입력받을 때 사용되는 View 위젯 중 EditText가 있습니다. 앱을 구현하다 보면 이러한 EditText의 Text 입력값이 변경될 때마다 특정 작업을 처리해야 할 경우가 있습니다. 이때는 TextWatcher 인터페이스를 구현하여 EditText의 이벤트 리스너로 등록하여 처리가 가능합니다. 1. TextWatcher 인터페이스 필구 구현 함수들 ■ beforeTextChanged(CharSequence s. int start, int count, int after) CharSequece s : 현재 EditText에 입력된 값 int start : s에 저장된 문자열에서 새로 추가될 문자열의 시작 위치 값 int count : s에 새로운 문자열이 추가된 후 ..

안드로이드 단말기에는 여러 가지 키(Key)가 존재합니다. 이전 액티비티로 돌아가거나 현재 액티비티가 루트 액티비티일 경우 앱을 종료시키는 뒤로 가기 키, 볼륨 조절을 위한 볼륨 업다운 키, 홈 화면으로 이동 가능한 홈 키등 여러 가지 키 이벤트(Key Event)를 발생시켜 단말기의 특정 작업을 처리하는 경우가 많습니다. 안드로이드 앱 개발 과정에서도 이러한 각 키(Key)에 대한 이벤트 처리를 onKeyUp() 함수와 onKeyDown() 함수를 재정의함으로써 이벤트 처리 작업이 가능합니다. 함수명으로도 직관적으로 알수 있듯이 onKeyDown()은 키가 눌렀졌을 때 호출되며 onKeyUp() 함수는 키에서 손을 뗐을 때 호출되는 함수입니다. 두 함수는 KeyCode 값과 KeyEvent 두 개의 공..

안드로이드에서 액티비티(Activity)는 애플리케이션의 컴포넌트(Componenet)를 의미합니다. 우리가 앱을 사용하면서 보는 화면이 액티비티를 의미하며 사용자와의 상호작용을 위한 UI를 올릴 수 있습니다. 액티비티는 일반적으로 화면을 가득 채우지만 작은 화면으로 만들어 다른 화면 위에 띄우는 것도 가능합니다. 하나의 앱에는 보통 여러개의 액티비티가 존재합니다만, 보통 하나의 앱에서 하나의 액티비티가 Main으로 설정이 되어 앱을 처음 구동하였을 때 가장 먼저 화면에 표시되는 액티비티가 됩니다. 그러다가 사용자가 앱을 자유롭게 사용하면서 필요에 따라 다른 Sub 액티비티가 실행이 됩니다. 이때 Main 액티비티는 실행이 중단되지만 시스템은 해당 액티비티를 스택(Stack)에 Push를 하고 Sub 액..

저번 포스팅에서는 MainActivity에서 다른 Activity를 실행하기 위해서 인텐트(Intent)를 생성하고 실행하는 액티비티에 전달하고자 하는 데이터들을 인텐트에 담아 호출하는 방법에 대해서 알아보았습니다. 이렇듯 인텐트(Intent)를 사용하면 원하는 컴포넌트(Component)를 실행하는 것이 가능한데 실행하는 방식에 있어서 명시적(Explicit) 방법과 암시적( Implicit) 방법 두 가지가 있습니다. 1. 명시적 인텐트(Explicit Intent) 먼저 명시적 인텐트에 대해서 알아보겠습니다. 명시적 인텐트는 실행할 컴포넌트의 이름과 클래스명을 말 그대로 명시적으로 작성하여 우리가 실행하고자 하는 컴포넌트가 명확할 때 사용하는 방식입니다. 이전 포스팅에서 MainActivity에서 ..

저번 포스팅에서는 액티비티(Activity)를 생성하고 실행하는 방법에 대해서 알아보았습니다. 이번 포스팅에서는 액티비티(Activity)를 실행할 때 호출되는 액티비티(Activity)에 데이터를 전달하는 방법에 대해서 알아보겠습니다. 1. 액티비티 간에 데이터 전달방법 저번 포스팅에서 액티비티를 실행할 때 인텐트(Intent)를 생성하여 사용했습니다. 실행되는 액티비티에 데이터를 전달할 때도 마찬가지로 인텐트(Intent)를 사용하게 됩니다. ▼ MainActivity에서 SubActivity를 실행하면서 데이터를 전달하는 대략적인 프로세스를 나타내는 그림입니다. MainActivity에서는 액티비티를 실행하기 위해서는 먼저 Intent 객체를 생성합니다. SubActivity에 데이터를 넘겨줄 때는..

사용자 입장에서 액티비티(Activity)를 실행하기 위해서는 단말기 화면의 앱 아이콘을 클릭하여 실행할 수 있습니다. 반면 개발자는 자신의 앱에서 다른 액티비티(Activity)를 호출하기 위해서는 인텐트(Intent)를 통해 실행할 수 있습니다. 이번 포스팅에서는 엑티비티(Activity)를 생성하고 호출하는 방법에 대해 알아보겠습니다. A 엑티비티와 B 액티비티 2개를 생성할 것입니다. 예제 구현의 최종 목표는 A 액티비티에서 특정 동작에 의해 B 액티비티를 실행하는 동작을 구현하는 게 목표입니다. 1. 엑티비티 XML 레이아웃 리소스 파일 추가 먼저 A 엑티비티와 B액티비티의 화면 UI를 정의할 xml 레이아웃 리소스 파일을 생성합니다. 경로는 /res/layout/ 경로 아래에 생성하도록 합니다..

스타일 리소스를 사용하면 화면에 배치되는 뷰(View)의 공통 속성을 편하게 지정할 수 있습니다. 아래 XML 레이아웃 리소스를 한번 살펴보겠습니다. ▼ TextView 3개가 배치되어 있고 각 TextView의 text, textColor, textSize 속성값을 모두 동일한 값을 사용하고 있습니다. 만약 저런 공통 속성을 가지는 뷰(View)가 앱 내에서 수십 개씩 된다면 일일이 속성을 지정하는 건 굉장히 힘든 일이 될 것입니다. 이때 재사용이 가능한 스타일 리소스를 추가하면 보다 간편하게 공통 속성을 지정할 수 있습니다. 1. 스타일 리소스(Style Resource) 파일 추가 스타일 리소스는 레이아웃 리소스와는 별개의 xml 파일에 추가합니다. /res/values/ 경로밑에 xml 리소스 파..

1. 문자열 리소스 - /res/values/Strings.xml 안드로이드 프로젝트를 생성하게 되면 /res/values/ 경로 아래에 strings.xml이라는 xml 리소스 파일을 확인할 수 있습니다. ▼ 해당 파일은 프로젝트 생성당시에 default로 생성되는 xml 리소스 파일입니다. 이미 app_name이라는 이름을 가진 문자열 리소스가 정의되어 있습니다. 각 태그 요소와 xml 리소스 작성방법에 대해 살펴보겠습니다. ● 요소 xml 리소스를 추가하는데 있어서 필수로 들어가는 루트 요소입니다. 반드시 추가하는 리소스는 ~ 내부에 작성되어야 합니다. ● 요소 단일 문자열 리소스를 추가할 때 사용하는 요소입니다. 반드시 name 속성값을 지정해야 하며 name 속성값은 문자열의 이름이자 다른 곳에..

App 사용자의 일련의 행동에 대해 반응하고 특정한 기능을 수행하는 것을 이벤트를 처리한다는 또는 이벤트를 핸들링한다고 말합니다. 대표적으로 Button 클릭 이벤트가 있습니다. 사용자가 Button을 클릭하면 구현된 기능을 수행하죠. 이를 Button 클릭 이벤트를 처리한다고 말합니다. 안드로이드에서는 특정 이벤트 처리를 리스너(Listener)를 구현함으로써 처리할 수 있습니다. 특정 뷰(View)에 대해 이벤트가 발생하고 등록된 리스너의 오버라이딩 된 약속된 Method를 호출함으로써 이벤트를 처리하는 방식인 거죠. 이번 포스팅에서는 이벤트를 처리하기 위한 여러 방법에 대해서 알아보도록 하겠습니다. 1. 공통 예제 레이아웃 형태. 버튼 이벤트 처리에 대한 예제는 동일한 기능을 수행하는 App을 기반..

안드로이드 4대 구성요소(Component)는 엑티비티(Activity), 서비스(Service), 콘텐트 제공자(Content Provider), 방송수신자(Brodcaster Receiver)로 이루어져 있습니다. 각각의 구성요소(Component)는 독립된 형태로 존재하며 각자가 고유의 기능을 수행하며 중간에 인텐트(intent)를 통해 상호작용을 합니다. 이번 포스팅에서는 4대 구성요소의 전체적인 개념에 대해서만 정리하고 각 구성요소에 대해서 자세한 내용을 포스팅하도록 하겠습니다. 4대 구성요소(Component) 1. 엑티비티 (Activity) 엑티비티(Activity)는 사용자 화면을 담당하는 구성요소입니다. App에서 엑티비티를 구현하기 위해서는 Activity Class를 상속받아야 하며..