Android 21

[Android/kotlin] datepickerdialog 커스텀 / 선택한 날짜의 년,월,일,요일 표시

- 캘린더를 현재 날짜 이후로만 활성화되도록 - 선택한 날짜와 요일이 뜨도록 binding.todoDatepicker.setOnClickListener { // datepickerdialog에 표시할 달력 val datepickercalendar = Calendar.getInstance() val year = datepickercalendar.get(Calendar.YEAR) val month = datepickercalendar.get(Calendar.MONTH) val day = datepickercalendar.get(Calendar.DAY_OF_MONTH) val dpd = DatePickerDialog( requireContext(), R.style.MySpinnerDatePickerStyle,..

Android 2021.03.08

[Android/kotlin] spinner 커스텀해서 사용하기

res/strings.xml - 여기에 spinner를 구성할 item을 모아놓은 string array를 정의한다. 오전 오후 1 2 3 4 5 6 7 8 9 10 11 12 00 05 10 15 20 25 30 35 40 45 50 55 custom한 spinner의 배경 drawable (layer-list로 아이템들을 겹쳐서 drawable을 만듦) spinner가 포함된 layout.xml에는 background에 커스텀한 drawable을 지정한다. (popupBackground는 spinner를 클릭해서 선택할 항목들이 popup으로 나타날때의 배경을 지정한다. edittext_design은 spinner 배경에서 회색 화살표만 뺀 부분을 지정했기 때문에, 위 캡쳐와같은 배경이 나타난다) v..

Android 2021.03.07

[Android/kotlin] DialogFragment를 이용한 커스텀 대화상자 만들기

Dialog vs Dialogfragment developer.android.com/guide/topics/ui/dialogs?hl=ko -> 대화상자를 관리하는 데 DialogFragment를 사용하면 사용자가 뒤로 버튼을 누르거나 화면을 돌리는 등과 같은 수명 주기 이벤트를 올바르게 처리할 수 있습니다. DialogFragment 클래스를 사용하면 대화상자의 UI를 더 큰 UI에 삽입할 수 있는 구성요소로 재사용할 수도 있습니다. dialogfragment는 dialog에 비해 생명주기를 활용한 프로그래밍이 가능하다는 점에서 용이하다. DialogFragment를 이용하여 커스텀 대화상자만들기 1. dialog를 커스텀할 layout 구성 - res/layout/dialogtodoadd.xml 2. ..

Android 2021.03.05

[Android/kotlin] okhttp & retrofit으로 json 파싱하기

OkHttp란? http를 더 간편하고 효율적으로 쓸 수 있도록 돕는 라이브러리 Retrofit이란? 안드로이드 앱에서 restful 통신을 할 수 있도록 도와주는 라이브러리 ※ restful 이란? devyul.tistory.com/entry/Network-REST-Restful-REST-API-%EC%A0%95%EB%A6%AC 참조 영화 진흥 위원회 API의 JSON 파싱하기 - Retrofit 사용 1. gradle 설정 dependencies { ... // Retrofit2 implementation 'com.squareup.retrofit2:retrofit:2.5.0' // Json Parser implementation 'com.squareup.retrofit2:converter-gson:2..

Android 2021.01.29

[Android] 팔레트 항목 뜯어보기

Common Widgets ProgressBar 앱 내에서 어떠한 작업이 수행될 때, 그 작업의 진행 상태를 시각적으로 보여주기 위해 사용하는 뷰(View) 위젯 불확정적 모드(indeterminate) : 작업의 진행 단계나 완료 시점이 결정되지 않은 경우 ex) 네트워크를 통해 서버에 요청을 보내고 응답을 받기까지의 과정을 표시할때 -> 작업중이라고 간단하게 표시 확정적 모드 (determinate) : 진행중인 작업의 진행상태를 정확하게 수치로 표시할 수 있는 경우 -> 진행상황을 표시할 수의 기본값을 progress 속성으로 값을 지정하고, 앱 실행중 바꾸려면 setProgress 함수 사용 Custom progressbar Reference recipes4dev.tistory.com/135

Android 2021.01.21

[Android] AsyncTask 클래스

AsyncTask AsyncTask란? Thread와 Handler의 사용 대신, UI상에서 간단하게 비동기 작업을 수행할 수 있도록 도와주는 클래스 -> Thread와 달리 UI 요소를 직접 접근하여 사용할 수 있음 (doInBackground() 메소드 제외) AsyncTask 상속 Param1 : AsyncTask에 전달할 자료형 Param2 : 작업 진행상태를 표시할 자료형 Param3 : AsyncTask 수행 후 반환할 결과의 자료형 전달할때, 자료형은 반드시 클래스 형태로 전달되어야함 (ex: int x , Integer o) 반환할 자료형이 없으면 Void AsyncTask 동작의 예 (소스코드) public class MainActivity extends AppCompatActivity ..

Android 2021.01.20

[Android] 스레드(Thread)와 핸들러(Handler)

비동기 처리 비동기 처리란? 비동기 처리 (동기적으로 처리하지않음) -> 즉, 동기적으로 처리할 경우에 코드의 응답 결과를 기다렸다가 받으면 다음 동작을 실행하는 처리가 아니라 응답에 상관없이 동작을 실행하는 처리방식을 의미한다. 비동기 처리가 왜 필요한가? 작업시간이 긴 작업 또는 기기 외부 요소와 상호작용할 경우 시간 지연이 발생할 수 있음 -> 사용자 UI를 처리하는 메인 쓰레드에서 이 경우가 발생한 경우에 ANR(Application Not Responding)이 발생함 (ex: 대용량 DB 접근, 네트워크 사용 등) 따라서 API 11부터 UI 쓰레드(Activity, Main Thread)에서 위와 같은 시간지연이 발생하는 작업이 금지됨 => 비동기 처리방식을 이용하여 별도의 쓰레드에서 작업시..

Android 2021.01.20

[Kotlin] 문법정리

Kotlin 코틀린은 자바와달리 ; (세미콜론)을 쓰지 않는다는것이 특징 코틀린 변수 var : 가변 변수 val : 불변 변수 (자바의 final과 동일) ex) val a : Int = 7 ⇒ 불변변수 a의 타입은 int이고 초기값은 7 val b = 10; ⇒ 타입을 적지 않았으나 코틀린 컴파일러가 타입을 추론하여 정수 타입인 int로 처리함. 리플렉션(참조), 더블콜론(::) 리플렉션? 바이트코드를 이용해 내가 참조하려는 값을 찾기위해 사용하는 것 java에서, Someclass.class 라고 하면 class를 리턴하는 반면에 코틀린에서 Someclass::class라고 하면 KClass를 리턴하므로, 형 변환을 위해 Someclass::class.java 로 하여 자바 클래스를 받아야함 클래스..

Android/Kotlin 2021.01.20

[Android] Intent(인텐트)

Intent : 안드로이드 컴포넌트 사이의 통신수단 ⇒ 메시징 객체 다른 앱 구성요소로부터 작업을 요청하는데 사용 기본적인 사용사례 3가지 1. 액티비티 시작 : startActivity에 시작할 액티비티와 이에 필요한 데이터를 담은 intent 전달 만약, 그 전달된 액티비티가 완료되었을 때 결과를 수신하려면 startActivityForResult 호출하고, 그 결과를 사용하고자 할 때 onActivityResult에서 별도의 intent 객체로 수신 2. 서비스 시작 : API 5.0 이상 ⇒ JobScheduler로 서비스 시작 API 5.0 이하 ⇒ startService에 시작할 서비스와 데이터를 담은 intent 전달 3. 브로드캐스트 ⇒ 모든 앱이 수신할 수 있는 메시지. sendBroad..

Android 2021.01.20

[Android] LifeCycle

안드로이드에서의 생명주기 ⇒ 사용자가 앱을 탐색하고, 앱에서 나가고, 앱에서 다시 돌아오는 활동이 작동하는 방식 Activity 클래스는 이러한 활동 상태 변화에 따른 작동을 정의한 콜백(시스템에서 자동으로 실행되는) 메소드 제공 메소드를 어떻게 사용하느냐는 흐름에 맞게 개발자의 기획 by 기획! 1. onCreate 액티비티가 시작하면 제일 먼저 실행되는 메소드 ⇒ 필수 구현 하나의 액티비티에서 전체 수명 주기동안 단 한번만 발생해야만 하는 로직 포함 주로 화면을 정의하고, 변수 선언 및 초기화하는데에 사용 Activity가 실행되고나서 종료 후 재시작되면 onSaveInstanceState에서 저장한 내용과 동일한 bundle(키와 값이 쌍을 이루는 데이터)을 넘겨줌 -> 이전 상태값 전달 디바이스가..

Android 2021.01.07
반응형