일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- DataBinding
- onMeasure
- Android
- kotlin
- room
- 알고리즘
- HTTP
- ViewModel
- lifecycle
- Coroutine
- LiveData
- CollapsingToolbarLayout
- AppBarLayout
- notification
- Navigation
- BOJ
- 알림
- CoordinatorLayout
- 백준
- onLayout
- recyclerview
- Algorithm
- CustomView
- Behavior
- hilt
- 코틀린
- sqlite
- 안드로이드
- activity
- View
- Today
- Total
목록Programming (프로그래밍) (212)
개발일지
Android에서 Jetpack Navigation Component를 사용할 때 Global Action을 RecyclerView ViewHolder에서 바로 findNavController를 사용하는 경우 종종 does not have a NavController set Exception이 발생한다. * Dialog에서 RecyclerView를 사용하는 경우 자주 발생한다. itemView.findNavController() 위에 문제를 발생하는 코드를 아래로 고치자. Navigation.findNavController(activity, R.id.nav_host) Hilt를 사용하여 DI 패턴을 적용하면 RecyclerViewAdapter에서 Activity나 Fragment를 쉽게 가져올 수 있다.
RecyclerView Selection에서 선택한 ViewHolder의 키 값을 가져오기 위해 ItemKeyProvider를 사용한다. 보통의 경우 StableIdKeyProvider를 사용할 수 있다. 하지만 StableIdKeyProvider은 내부적으로 Cache 기능을 사용하기 때문에 Selection이 등록된 후 Item을 제거하는 기능을 사용하면 내부적으로 동기화가 되지 않는다. E/AndroidRuntime: FATAL EXCEPTION: main Process: com.taetae98.qrreader, PID: 30548 java.lang.IllegalArgumentException at androidx.core.util.Preconditions.checkArgument(Precondit..
Span Span은 TextView에 텍스트를 표현할 때 스타일을 입힐 수 있도록 도와줍니다. 예를 들면 색상, 크기, 폰트 등 다양한 옵션이 존재합니다. Span Class Span에 관련된 Class가 여러개 존재하며 상황에 맞게 효율적인 Class를 선택하여 사용해야 합니다. Class Edit Text Edit Span 데이터 구조 SpannedString NO NO Array SpannableString NO YES Array SpannableStringBuilder YES YES List Span을 생성하고 어떠한 수정이 발생하지 않으면 SpannedString을 사용합니다. Text를 변경하지 않으며 적은 수의 Span을 변경하면 SpannableString을 사용합니다. Text의 변경 또..
Dialog.behavior.state를 STATE_EXPANDED로 바꿔주자! BottomSheetDialogFragment에서 예시 override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { return super.onCreateDialog(savedInstanceState).apply { if (this is BottomSheetDialog) { behavior.state = BottomSheetBehavior.STATE_EXPANDED } } }
https://programmers.co.kr/learn/courses/30/lessons/68937 코딩테스트 연습 - 트리 트리오 중간값 5 [[1,5],[2,5],[3,5],[4,5]] 2 programmers.co.kr 접근 1. 트리의 지름을 구할 수 있는 임의의 정점을 찾고 해당 정점과 다른 정점들 사이의 거리 중 2번째로 큰 값을 반환했다. => 12번 테스트 케이스에서 오답. 1번의 반례 위와 같은 그래프는 A-B를 통해 트리의 지금을 구할 수 있다. 해당 경우 A와 다른 정점들 사이의 거리 중 2번째로 큰 값을 반환한 값보다 (A, B, C)의 중간값이 더 크다. => 트리의 지름을 d라고 할 때 정점들 사이의 거리 중 d가 2개 이상 나올 수 있는 경우를 놓쳤기 때문에 1번 풀이법은 옳..
https://programmers.co.kr/learn/courses/30/lessons/1838 코딩테스트 연습 - 몸짱 트레이너 라이언의 고민 4 5 [[1140,1200],[1150,1200],[1100,1200],[1210,1300],[1220,1280]] 4 programmers.co.kr 접근 그리디하게 최대로 사람이 몰리는 시점에 사람이 몇명인지 파악하고 격자판에 그 사람을 배치하면 된다. => 사람이 많은 시점이 사람이 적은 시점보다 거리가 멀기 때문 1) 규칙성 격자판으로 채울 경우((n*n + 1)/2 == people)인 경우) 거리가 2, 그 이상은 거리가 1이라고 할 수 있다. 그 외에 경우 규칙성을 찾으려 했지만 실패 2) 분할정복 & DP people이 1이면 0 (문제 조건..
Jitpack Library를 Maven이나 jcenter같은 곳에 베포할 수 있지만 Jitpack을 사용하면 Android Module을 쉽게 베포할 수 있습니다. 또한 Android뿐만 아니라 Gradle을 사용한 프로젝트를 쉽게 베포할 수 있습니다. Jitpack은 Github에 저장된 Repository를 공유하기 때문에 Git을 사용하는 개발자는 쉽게 접근할 수 있고 설정도 간편하다는 장점이 있습니다. https://jitpack.io/docs/ANDROID/ Android - JitPack.io From here you can search these documents. Enter your search terms below. jitpack.io Plugin 설정하기 Module에 위치한 Grad..
Intent Intent는 Android에서 메시지를 전달하는 객체입니다. 주로 Activitiy, Service, Broadcast같은 Android 요소들 사이에서 메시지를 전달하는 역할을 수행합니다. 위 그림은 startActivity를 처리하는 과정입니다. Activity나 Service같은 Android 요소들은 직접 생성해서 사용하는 것이 아닌 Intent를 통해 Android Framework에 요청하여 사용하게 됩니다. 요청할 때 Intent에 데이터를 넣어서 보낼 수 있습니다. 인텐트 유형 명시적 인텐트 : Intent를 처리할 요소를 명시적으로 정하는 방식입니다. Context와 처리할 요소의 정보(패키지명, 클래스 이름)를 명시적으로 정하여 인텐트를 전송합니다. 암시적 인텐트 : In..