안드로이드: 196개의 글
저번 포스팅에서 알아본 옵션 메뉴(Option Menu)는 앱의 전반적인 기능에 대한 메뉴를 제공하는 메뉴라면 이번 포스팅에서 알아볼 컨텍스트 메뉴(Context Menu)는 특정 뷰(View)에 대한 메뉴를 제공합니다. 컨텍스트 메뉴(Context Menu)는 뷰(View)를 길게 눌렀을 때 활성화됩니다. 1. 컨텍스트 메뉴(Context Menu) 구현 과정 컨텍스트 메뉴(Context Menu)를 구현하는 과정을 살펴보겠습니다. 컨텍스트 메뉴(Context Menu)는 특정 뷰(View)를 길게 눌렀을 때 활성화되는 메뉴입니다. 특정 뷰(View)가 컨텍스트 메뉴(Context Menu)가 동작하는 뷰(View)로 등록하기 위해서는 액티비티의 registerForContextMenu(View vie..
안드로이드에서 옵션 메뉴(Option Menu)는 앱의 우측 상단에 배치되는 메뉴키를 통해 동작시킬 수 있습니다. 옵션 메뉴(Option Menu)는 리스트 형식의 다이얼로그로 여러 개의 메뉴 항목을 추가할 수 있고 각 메뉴 항목은 하위 메뉴를 포함하는 것도 가능합니다. 1. 액티비티(Activity)에 옵션 메뉴(Option Menu) 추가하기 ▼ 옵션 메뉴(Option Menu)를 추가하는 과정은 먼저 /res/menu/ 경로에 Menu Resource를 위해 XML 파일을 생성합니다. /res/ 경로 밑에 menu Directory가 존재하지 않으면 추가를 하여 해당 Directory 하위에 XML 파일을 생성해줍니다. ▼ Activity의 onCreateOptionsMenu() 함수를 오버라이딩 ..
안드로이드 앱을 개발하다 보면 사용자로부터 날짜 및 시간 정보를 입력받는 경우가 많습니다. 안드로이드에서 제공하는 DatePickerDialog와 TimePickerDialog를 사용하면 이러한 입력 Dialog를 쉽게 구현할 수 있습니다. 클래스명으로 직관적으로 알수 있듯이 DatePickerDialog는 날짜를 입력받을 수 있는 다이얼로그(Dialog)입니다. 반면에 TimePickerDialog는 시간을 입력받을 수 있는 다이얼로그(Dialog)로 Dialog 형태는 아래와 같습니다. 1. 날짜 정보 입력을 위한 다이얼로그(Dialog) - DatePickerDialog DatePickerDialog를 띄우기 위해서는 먼저 OnDateSetListener를 구현하고 그 안에 onDateSet() 함..
1. setContentView() 함수의 역할 ▼ 여기 화면 구성을 위한 XML 레이아웃 리소스가 있습니다. 해당 XML은 화면에 배치되는 View와 ViewGroup에 대한 속성과 상하 배치관계 등과 같이 화면에 배치되기 위한 여러 정보가 담겨있습니다. 해당 XML 파일은 단순한 디자인 정보로 실제로 이 정보를 가지고 화면을 보여주기 위해서는 XML에 정의된 각 위젯들을 정의된 속성을 지정하고 상하관계에 맞춘 뒤 메모리에 올려야 합니다. 이러한 일련의 작업을 소스상에서 제공하는 게 setContentView() 함수입니다. public class MainActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceSt..
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 클래스는 멤버 변수..
안드로이드에서는 빛의 3요소인 R(빨강) G(초록) B(파랑)로 구성된 색상 리소스 값을 추가하여 사용할 수 있습니다. RGB의 각각의 색상에 해당하는 값을 0~255까지 16진수로 표현한 값을 사용하며 다음과 같은 색상 표현 형식을 사용할 수 있습니다. 1. 색상(Color) 표현 방식 ▼ #으로 시작하며 RGB에 해당하는 각 색상을 0~15까지 16진수로 표현된 값으로 표현합니다. 예를 들어 빨강을 표현하고 싶다면 #F00 같이 사용하면됩니다. ▼ 위 형식에서 마찬가지로 각 색상값이 0~15까지의 16진수 값을 가지는데 투명도 값이 추가된 형태입니다. 투명도도 0~15까지 16진수 값을 가지며 수치가 커질수록 불투명해집니다. ▼ 이 표현 방식은 0~255까지 수치값으로 색상을 표현하기 때문에 더 다양..