본문 바로가기

android

(5)
Toolbar에 메뉴 추가하기 안드로이드 툴바에는 메뉴를 추가할 수 있습니다. 위 그림에서 점 세개로 표현된 이미지를 클릭하면 등록된 XML 메뉴 리스트를 보여줍니다. 툴바에 메뉴를 inflate 시키는 방법을 검색해보면 대부분 액티비티에서 onCreateOptionsMenu(menu: Menu?)메소드를 통해 메뉴를 툴바에 입히고(inflate), 선택된 메뉴에 대한 이벤트 처리는 onOptionsItemSelected(item: MenuItem): Boolean을 통해서 처리하는 것을 볼 수 있습니다. 이러한 방법은 툴바를 액티비티에 속해 있는 ActionBar로 취급할 때 사용되는 방법입니다. 만약 툴바를 액티비티 내에 종속시키지 않고, 각 프래그먼트마다 별개로 구현한다면 메뉴를 구성하기 위한 위 메소드들을 프래그먼트에서 가로채..
Android Abstraction Between Packages 아래는 Android Jetpack How to smartly use fragment in your UI(Google I/O 2018) 발표의 스크립트 중 일부입니다. So before we talk about that, I think it's kind of important to go into a little bit about the package layering involved in the Android framewokr, specifically android.widget versus android.app Now, android.widget is really kind of designed to hold all the mechanism for your UI. That means that this is ..
WorkManager 목표 내일 실행될 Reminder를 전날에 등록하는 백그라운드 작업을 실행하는 것. 오늘 자정이 지나가기전 내일 사용자에게 알려줘야할 Notification들을 시스템에 등록하는 작업을 실행해야 한다. 특정한 시간 이전까지 실행되어야 한다. 실행이 되지 않을 경우 Reminder가 누락될 수 있다. 실행이 보장되어야 한다. 안드로이드의 백그라운드 작업 안드로이드의 백그라운드 작업은 AlarmManager를 시작으로 JobScheduler등을 거쳐서 최신 WorkManager까지 다양한 라이브러리가 공존한다. 다양한 플랫폼, API 버전등을 포괄해서 지원하는 최신 라이브러리인 WorkManager를 사용해보는 것은 이번 프로젝트의 목표 중에 하나였다. 사용하기에 앞서 WorkManager를 간단히 살펴보자..
자동 Keypad 보여주기 새로운 Task를 생성할때 가장 먼저 하는 일은 Task의 제목을 입력하는 것이다. 오늘 구현할 기능은 Task Add모드로 진입시에 제목을 빠르게 입력할 수 있도록 Keypad를 자동으로 띄워주는 기능이다. AddEditTaskFragment에 진입했을 경우 자동으로 키패드를 보여준다. 그리고 바로 제목을 입력할 수 있도록 도와준다. 반대로 AddEditTaskFragment에서의 작업을 마친 경우 키패드를 숨겨야한다. 그리고 키패드가 화면의 많은 부분을 차지하여 EditText에 정보를 입력하는 경우를 제외하고는 사용에 불편함을 주기 때문에. 다른 메뉴 항목을 선택했을 경우에도 키패드는 숨겨져야한다. Keypad Control 키패드를 관리하기 위해서 KeypadUtils라는 클래스를 독립적으로 생성..
Navigation Component 사용하기 Navigation Component를 사용해서 화면 전환하는 것을 알아보자. Navigation Component에 대해서 간단히 정리해보면 nav_graph.xml에 Navigation에 사용될 화면들을 정의해두고 Java에서 이것을 사용해서 화면전환을 하는 구조이다. 크게 Navigation을 실행하는 NavController가 있고, 화면이 전환되는 영역인 NavHostFragment가 있다. 화면 단위는 Destination이라는 용어로 부르고 Fragment를 사용해서 구성된다. 1. Destination 추가하기 오늘은 task_list에서 addEditTaskFragment로 화면전환을 할 것이다. 두 목적지 사이에 화살표는 Action이라고 불린다. 한 화면에서 다른 화면으로 이동할 수 ..