AlertDialog는 사용자의 전체 화면을 가리지 않으면서 사용자의 응답이나 추가 정보를 입력하도록 하는 작은 창을 의미합니다. 1. AlertDialog 생성하기 AlertDialog.Builder 객체를 생성하여 AlertDialog의 다양한 디자인을 구축할 수 있습니다. 먼저 AlertDialog를 생성하는 가장 기본적인 형태를 살펴보겠습니다. 먼저 예제의 메인 화면이 되는 Activity의 XML 레이아웃 리소스입니다. ▼ Button 한 개를 배치한 간단한 UI입니다. Button을 클릭하였을 때 다이얼로그 창이 뜨도록 구현할 것이며 아래에 나오는 예제들도 특수한 경우가 아닌 이상 해당 XML 레이아웃 리소스를 사용할 것입니다. public class MainActivity extends Ap..
SnackBar는 Toast처럼 화면상에 팝업창을 띄워 사용자에게 특정한 정보를 제공할 때 사용됩니다. Toast와 유사한 기능을 제공하지만 Toast의 경우는 팝업창이 나타났다가 지정한 duration에 따라 일정 시간 보이다가 자동으로 사라지는 팝업창입니다. 반면 SnackBar도 마찬가지로 지정된 duration에 따라 화면상에 표시되었다가 사라지는 건 Toast와 같지만 duration을 LENGTH_INDEFINITE로 설정하고 사용자로부터 특정한 응답을 받을 수 있도록 팝업창을 구현하는것이 가능합니다. 1. 라이브러리 추가하기 Toast 클래스는 바로 사용이 가능하지만 SnackBar 클래스를 사용하기 위해서는 관련 라이브러리를 프로젝트에 추가해야 사용이 가능합니다. Ctl + Alt + Sh..
토스트(Toast)는 사용자에게 짧은 메시지 형식으로 정보를 전달하는 팝업을 의미합니다. 메시지를 표시할 공간만 차지하고 시간이 지나면 자동으로 사라지는 메시지입니다. 메시지에 대한 사용자의 응답을 필요하지 않고 단순히 사용자에게 정보를 전달할 용도로 많이 사용됩니다. 1. 토스트(Toast) 사용하기 public class MainActivity extends AppCompatActivity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void ClickHandler(View view..
특정 액티비티(Activity)를 실행하고 해당 액티비티의 실행 결과를 받아와 처리를 해야 하는 경우가 있습니다. 간단하게 주소록 액티비티를 생각해보면 됩니다. 주소록은 연락처 목록이 나오고 새로운 연락처를 추가하기 위해서는 연락처 추가 액티비티를 실행하게 됩니다. 해당 액티비티에서 데이터를 입력하고 추가를 클릭하면 연락처 추가 액티비티는 종료되고 연락처 목록에는 추가했던 연락처가 갱신됩니다. 이때 연락처 추가 액티비티에서 추가했던 데이터를 목록에 갱신하기 위해서는 해당 액티비티로부터 입력했던 데이터를 가져와야 합니다. 1. 액티비티로부터 데이터 가져오기 위한 프로세스 ▼ 액티비티(Activity)를 실행할 때 startActivity() 함수를 호출하였습니다. 하지만 액티비티로부터 결과를 얻어오기 위해..
앞서 포스팅에서는 프리미티브 타입의 일반적인 자료형의 변수를 다른 액티비티에 전달하는 방법을 살펴보았습니다. 만약 아래와 같이 클래스 안에 정의된 프리미티브 타입의 변수들이 정의되어 있는 객체를 전달할 때는 어떻게 해야 할까요? public class Person{ private String name; private int age; public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } public String getName() { return this.name; } public int getAge() { return this.age; } } ▼ Person 클래스는 멤버 변수..
저번 포스팅에서는 액티비티(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 리소스 파..
안드로이드에서는 빛의 3요소인 R(빨강) G(초록) B(파랑)로 구성된 색상 리소스 값을 추가하여 사용할 수 있습니다. RGB의 각각의 색상에 해당하는 값을 0~255까지 16진수로 표현한 값을 사용하며 다음과 같은 색상 표현 형식을 사용할 수 있습니다. 1. 색상(Color) 표현 방식 ▼ #으로 시작하며 RGB에 해당하는 각 색상을 0~15까지 16진수로 표현된 값으로 표현합니다. 예를 들어 빨강을 표현하고 싶다면 #F00 같이 사용하면됩니다. ▼ 위 형식에서 마찬가지로 각 색상값이 0~15까지의 16진수 값을 가지는데 투명도 값이 추가된 형태입니다. 투명도도 0~15까지 16진수 값을 가지며 수치가 커질수록 불투명해집니다. ▼ 이 표현 방식은 0~255까지 수치값으로 색상을 표현하기 때문에 더 다양..
저번 포스팅에서는 요소를 통해 단일 문자열 리소스를 추가하는 방법을 알아봤습니다. 이번 포스팅에서는 요소를 사용해 문자열 배열 리소스를 추가하는 방법을 살펴보겠습니다. 1. xml string 리소스 파일 추가 프로젝트를 생성하면 자동으로 생성되는 /res/values/string.xml 파일 안에 리소스를 추가를 해도 상관없지만 따로 xml 문자열 리소스 파일을 생성하여 추가하도록 하겠습니다. ▼ values 폴더를 우클릭하여 [New]-[values resource file]을 클릭합니다. 파일 이름을 mystring.xml로 지정하고 ok를 클릭하면 /values/ 경로에 mystring.xml 파일이 생성되는 것을 확인할 수 있습니다. 무궁화 장미 해바라기 ■ ~ - 안드로이드에서 리소스를 추가할..
만약 여러분들이 개발하는 앱이 한국시장을 넘어 외국시장도 노리고 있다면 앱은 다국어 지원이 가능해야 합니다. 다국어 지원이란 단말기에 설정된 국가 언어에 따라 해당 국가 언어로 문자열이 바뀌는 것을 의미합니다. 안드로이드에서 다국어를 지원하기 위해서는 문자열 리소스를 활용해야 합니다. 이번 포스팅에서는 간단하게 한국어와 영어를 동시에 지원하는 앱을 만들어보겠습니다. 1. 한국어 문자열 리소스 추가 먼저 한국어를 지원하기 위해서는 한국어 전용 문자열 리소스 폴더를 생성합니다. ▼ 먼저 /res/ 경로에 문자열 리소스 폴더를 생성해줍니다. res 폴더를 우 클릭하여 [New]-[Directory]를 클릭하고 폴더 이름을 지정해주고 OK버튼을 클릭합니다. ▼ 여기서 폴더명은 반드시 values-ko와 같이 v..
1. 문자열 리소스 - /res/values/Strings.xml 안드로이드 프로젝트를 생성하게 되면 /res/values/ 경로 아래에 strings.xml이라는 xml 리소스 파일을 확인할 수 있습니다. ▼ 해당 파일은 프로젝트 생성당시에 default로 생성되는 xml 리소스 파일입니다. 이미 app_name이라는 이름을 가진 문자열 리소스가 정의되어 있습니다. 각 태그 요소와 xml 리소스 작성방법에 대해 살펴보겠습니다. ● 요소 xml 리소스를 추가하는데 있어서 필수로 들어가는 루트 요소입니다. 반드시 추가하는 리소스는 ~ 내부에 작성되어야 합니다. ● 요소 단일 문자열 리소스를 추가할 때 사용하는 요소입니다. 반드시 name 속성값을 지정해야 하며 name 속성값은 문자열의 이름이자 다른 곳에..
안드로이드 TextView는 화면에서 Text를 표시할 때 사용하는 뷰 위젯입니다. Button 과 EditText의 부모 클래스이기도 한 TextView는 사용법은 간단하지만 부모 클래스인 View 클래스로부터 상속받는 다양한 속성과 자기 자신이 가지는 다양한 속성들로 인해 자유자재로 다루는데는 시간이 걸립니다. 1. TextView 화면에 배치하기 ▼ TextView를 화면에 배치하는건 간단합니다. 심지어는 안드로이드 프로젝트를 처음 만들었을 때 생기는 Activity의 xml 레이아웃 리소스에서도 익숙하게 보셨을 겁니다. TextView의 Text 속성에 화면에 표시하고자 하는 문자열을 속성값으로 지정하게 되면 해당 속성값이 화면에 표시가 됩니다. 2. 자바 소스에서 TextView의 Text 지정..
App 사용자의 일련의 행동에 대해 반응하고 특정한 기능을 수행하는 것을 이벤트를 처리한다는 또는 이벤트를 핸들링한다고 말합니다. 대표적으로 Button 클릭 이벤트가 있습니다. 사용자가 Button을 클릭하면 구현된 기능을 수행하죠. 이를 Button 클릭 이벤트를 처리한다고 말합니다. 안드로이드에서는 특정 이벤트 처리를 리스너(Listener)를 구현함으로써 처리할 수 있습니다. 특정 뷰(View)에 대해 이벤트가 발생하고 등록된 리스너의 오버라이딩 된 약속된 Method를 호출함으로써 이벤트를 처리하는 방식인 거죠. 이번 포스팅에서는 이벤트를 처리하기 위한 여러 방법에 대해서 알아보도록 하겠습니다. 1. 공통 예제 레이아웃 형태. 버튼 이벤트 처리에 대한 예제는 동일한 기능을 수행하는 App을 기반..
자바에서 익명 클래스(Anonymous Class)를 사용하는 방법에 대해 알아보겠습니다. interface Number { public void DisplayNumber(); } ▼ 여기 Number Interface 하나가 있습니다. Number Interface를 상속받아 구현하는 Class는 DisplayNumber() Method를 구현하도록 강제합니다. public class Display { private Number number; public Display(Number object) { this.number = object; } public void display() { this.number.DisplayNumber(); } } ▼ Display Class를 정의하였습니다. Display ..