Android(66)
-
Data Binding(null 포인터 예외 방지)
서버에서 데이터를 받아 True or false일때 화면에 표시하는 기능을을 적용 할려고 해보니 의도와 다르게 표시되었다가 사라졌다. 디버깅 결과 호출을 두번하고 있었다. Visible = false Visible = true 그럼 호출을 두번 하는걸 한번만 하게 변경 하면 되지 않아? 라고 생각 했는데 그럴수 가없었다. Data Binding에서는 자동으로 초기값을 지정해 준다. 그래서 처음에 false로 값을 호출 하고 추후 데이터를 얻었을때 true로 값이 들어가기에 화면에 보였다가 사라지게 된거였다. 그래서 초기값을 바꿀수는 없는거야? - 여러 샵질 결과 아직까지 databindg에서의 초기값을 변경 할수 있는 방법은 못 찾았다. 계속 해서 찾아 봐야겠다 해결 방법 - false일때 안보여지고 t..
2022.05.27 -
AndroidViewModel VS ViewModel
안드로이드 레퍼런스 문서에는 아래와 같이 설명 하고있다. Application context aware ViewModel. Subclasses must have a constructor which accepts Application as the only parameter. 애플리케이션 컨텍스트 인식 ViewModel. Application서브클래스 에는 유일한 매개변수로 허용하는 생성자가 있어야 합니다 . 결론 : Viewmodel 내부에서 컨텍스트를 사용해야 하는 경우 AndroidViewModel를 사용 참고 사이트 https://developer.android.com/reference/androidx/lifecycle/AndroidViewModel https://stackoverflow.com/qu..
2022.05.25 -
getOrElse, getOrNull
getOrElse : 참조할 값이 존재하지 않거나 잘못되었을 경우 지정한 Else 값을 반환받는다. getOrNull : 참조할 값이 존재하지 않거나 잘못되었을 경우 Null을 반환받는다. =============LIST================ val ml = mutableListOf(5, 4, 3, 2, 1) // println(ml[10]) // IndexOutOfBoundException println("1. ${ml.getOrNull(4) }") // index = 4는 존재하므로 ml[4]를 반환 println("2. ${ml.getOrNull(10) }") // index = 10는 없으므로 Null 반환 println("3. ${ml.getOrElse(10) { -1 } }") // i..
2022.05.22 -
고차 함수(Higher-order functions)
고차 함수(Higher-order functions) 함수는 다른 함수를 인수로 취할 수 있습니다. 다른 함수를 인수로 사용하는 함수를 고차 함수라고 합니다. 이 패턴은 자바에서 콜백 인터페이스를 사용할 때와 동일한 방식으로 구성요소 간에 통신하는 데 유용합니다. 다음은 고차 함수의 예입니다. fun stringMapper(str: String, mapper: (String) -> Int): Int { // Invoke function return mapper(str) } stringMapper() 함수는 전달된 String에서 Int 값을 파생하는 함수와 함께 String를 가져옵니다. 아래 예와 같이 다른 입력 매개변수를 충족하는 함수, 즉 String을 입력으로 사용하고 Int를 출력하는 함수와 S..
2022.05.21 -
@HiltAndroidApp to have a value. Did you forget to apply the Gradle Plugin? 해결
에러 로그 error: [Hilt] public final class OpggApplication extends android.app.Application { ^ Expected @HiltAndroidApp to have a value. Did you forget to apply the Gradle Plugin? (dagger.hilt.android.plugin) See https://dagger.dev/hilt/gradle-setup.html [Hilt] Processing did not complete. See error above for details. 원인 kotlin 1.5.20 kapt 관련해서 생기는 문제 해결 방법 1. kotlin version 을 낮춤 > 1.5.20 에서 1.5.10 ..
2022.05.14 -
RecyclerView 하단 공백
리사이클뷰 아이템 마지막아이템에 공백을 적용하여 FloatingButton과 겹치지 않도록 하고 싶을때 paddingBottom과 clipToPadding false를 적용 해주면 된다.
2021.12.01