본문 바로가기
반응형

Android14

onUserLeaveHint 홈키 눌럿을때 이벤트 https://developer.android.com/reference/android/app/Activity Activity | Android Developers developer.android.com Called as part of the activity lifecycle when an activity is about to go into the background as the result of user choice. For example, when the user presses the Home key, onUserLeaveHint() will be called, but when an incoming phone call causes the in-all Activity to be automatically .. 2023. 7. 12.
[Android] RecyclerView 데이터 꼬일 때 대량의 데이터를 단순 출력하는데에는 RecyclerView가 최고의 선택일 것이다. 허나 단순출력을 넘어 데이터에 리스너등을 달아주는 순간 데이터가 꼬이기 시작한다. 이러한 문제의 원인은 ViewHolder를 재사용함에 있어서 발생하는 문제이다. 그럼 어떻게 해결해야 할 까? 걍 리스트뷰를 쓰는게 나을까? 해결방법1 : 재활용 막기 holder.setIsRecyclable(false); 위와같이 홀더의 재활용을 막으면 데이터 꼬임 문제를 해결 할 수 있다. 하지만 이렇게 하면 리사이클러뷰를 사용하는 의미가 없다 해결방법2 : 재활용 될 때 뷰를 초기화 하기 내가 찾은 해결방법은 onViewRecycled(ViewHolder holder) 메소드를 재 정의 하는 것이다. 뷰가 재활용 될 때 홀더를 싹다 초.. 2022. 6. 28.
[Android] Room DB 에서 query함수 동작 안할 때 데이터베이스에 직접 쿼리를 날리고 싶어서 객체를 까보니 query 함수가 있다. 헌데 동작을 안한다 망할. 하루종일 찾아보니 execSQL 함수를 쓰니 동작한다. 도대체 저 query 메소드는 정체가 뭘 까? 하루종일 고생했네 //db.getOpenHelper().getWritableDatabase().query("UPDATE user SET value = '123'"); db.getOpenHelper().getWritableDatabase().execSQL("UPDATE user SET cookTime = '123'"); 2022. 6. 24.
[Android] AlertDialog에서 showSoftInput 동작 안할 때 커스텀 레이아웃으로 Dialog를 만들고 그 안에 EditText를 넣은뒤 다이얼러그를 띄우면 바로 키보드가 뜨도록 하는 작업을 하게 되었다. 헌데 키보드가 올라오지 않는다... 구글에 검색해보니 나와 같이 AlertDialog로 커스텀 레이아웃을 쓰는 사람들 모두 똑같은 문제를 겪고 있었다. 하루종일 찾아보니 AlertDialog의 Window관련 Flag들이 문제를 일으키는게 원인이라 하던데... 대충 만져보니 showSoftInput 함수가 동작하였다. 단 Forced로 설정해야지만 동작한다. Forced로 하면 키보드 입력이 끝나도 키보드가 내려가지를 않음 ㅠㅠ... 어떤 flag를 만져야 할지 전혀 감이 안잡혀서 결국 생고생 하다가 나만의 workaround를 찾아 내었다. editText.re.. 2022. 6. 23.
[Android] Recycler View 사용하기 https://developer.android.com/guide/topics/ui/layout/recyclerview RecyclerView로 동적 목록 만들기 | Android 개발자 | Android Developers RecyclerView로 동적 목록 만들기 Android Jetpack의 구성요소 RecyclerView를 사용하면 대량의 데이터 세트를 효율적으로 표시할 수 있습니다. 개발자가 데이터를 제공하고 각 항목의 모양을 정의하면 R developer.android.com 1. Recycler View란? 데이터를 리스트로 나타내주는 뷰 이다. 아니 그럼 리스트뷰 쓰면 되지 왜 Recycler View를 쓰는가? 그 이유는 리스트뷰가 가지고 있던 성능문제를 Recycler View는 해결했기.. 2022. 6. 15.
[Android] Service 배우기 https://developer.android.com/guide/components/services?hl=ko 서비스 개요 | Android 개발자 | Android Developers 서비스 개요 Service는 백그라운드에서 오래 실행되는 작업을 수행할 수 있는 애플리케이션 구성 요소이며 사용자 인터페이스를 제공하지 않습니다. 다른 애플리케이션 구성 요소가 서비스를 시 developer.android.com 서비스란? 서비스는 안드로이드 어플리케이션을 구성하는 4개의 컴포넌트(액티비티, 서비스, 브도르캐스트, 컨텐트 프로바이더) 중 하나로 백그라운드에서 수행작업을 할 때 사용되는 구성요소이다. 서비스의 타입 서비스는 총 3가지의 타입이 존재한다 1. Foreground 서비스 포어그라운드 서비스는 유.. 2022. 5. 25.
Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager 오늘 갑자기 저 에러가 자꾸 뜨면서 앱이 빌드가 안됨.. 원인을 찾아보니 gradle sync 할 때 dx 파일이 없다고 자꾸 나옴 방법을 찾아보니 다른사람들은 다 컴파일러를 다운그레이드 하는 방법만나옴 좀더 찾아보니 dx라는게 31버전부터 d8로 바뀌었다고 함. 도로 dx로 바꾸어주면 해결 C:\Users\User\AppData\Local\Android\Sdk\build-tools\31.0.0 d8.bat 을 dx.bat으로 바꾸어준다 C:\Users\User\AppData\Local\Android\Sdk\build-tools\31.0.0/lib d8.jar를 dx.jar로 바꾸어준다 2022. 4. 13.
Incorrectly nested parentheses in regexp pattern near index 자바 String의 split 함수를 쓰다가 위와같은 exception이 발생핳였다 split함수에 괄호 ")" 나 "("를 넣어줄 때 발생한다. 해결방법은 괄호 앞에 백스페이스 두개를 넣어주면 된다. 즉 "\\)" 아래처럼 사용 "문자열1 ) 문자열2".split("\\)"); 2022. 4. 5.
You cannot keep your settings in the secure settings 안드로이드 Room Database에 ContentProvider를 통하여 데이터를 write 하던중 저런 exception이 낫다 원인을 분석해보니 데이터베이스에 써줘야 할 column 값들 몇개가 누락되어 있었다 간단한 실수지만 검색해도 명확하게 해결이 안돼서 힘든 문제였음. 2022. 4. 5.
[Android] Property Animation, 속성 애니메이션 https://developer.android.com/guide/topics/graphics/prop-animation 속성 애니메이션 개요 | Android 개발자 | Android Developers 속성 애니메이션 개요 속성 애니메이션 시스템은 거의 모든 항목을 애니메이션으로 만들 수 있는 강력한 프레임워크입니다. 애니메이션을 정의하여 화면에 그리는지에 관계없이 시간 경과에 developer.android.com 프로퍼티 애니메이션, 속성 애니메이션이란? 안드로이드에는 수많은 애니메이션이 있다. 그중 가장 강력한 애니메이션을 뽑자면 당연 프로퍼티 애니메이션이다. 프로퍼티 애니메이션은 거의 모든것을 애니메이션화 시킬 수 있다 프로퍼티 애니메이션이란 특정한 값(프로퍼티)가 변화할 때, start값과 e.. 2022. 2. 9.
path/to/sdkmanager --install "cmdline-tools;latest" 맥북 설정하다가 저런 에러가 났다 이 에러는 무엇이냐 sdk manager에서 저놈을 설치안해서 생긴일이다 2022. 1. 28.
코루틴 배우기 https://kotlinlang.org/docs/coroutines-guide.html Coroutines guide | Kotlin kotlinlang.org 코루틴 소개 코루틴은 간단히 설명하면 경량화된 스레드 + 다른언어의 async 키워드의 조합이라 생각하면 편하다. 하지만 차이점은 상당히 많다는 점을 기억! 코루틴은 kotlinx.corutines 라이브러리에 담겨있다. 코루틴의 정의 A coroutine is an instance of suspendable computation. It is conceptually similar to a thread, in the sense that it takes a block of code to run that works concurrently with t.. 2021. 12. 29.
[Flutter] Widget 위젯 배우기 https://flutter.dev/docs/development/ui/widgets-intro Introduction to widgets Learn about Flutter's widgets. flutter.dev 0. 요약 StatelessWidget : 상태가 없는 위젯. 변화가 거의 없는 위젯은 이것으로 선언한다 StatefulWidget : state라는 데이터 변화를 감지하고, state가 변할시 위젯을 rebuild 하는 위젯. setState라는 함수를 통해 state변화를 감지하여야 한다 GestureDetector : 위젯을 이것으로 감싸면 유저의 input gesture를 감지할 수 있다 initState: StatefulWidget 생성시 초기에 딱 한번 호출. 이니셜라이징 할 곳은.. 2021. 7. 21.
안드로이드 Fragment 사용하기 Fragment란? 프래그먼트란 액티비티 위에서 화면을 유동적으로 구사해주는 안드로이드의 기법이다. 위 그림은 똑같은 앱을 테블릿과 스마트폰에 뛰운 모습이다. 테블릿은 한 화면에 두개의 프레그먼트를 보여주고 스마트폰은 하나의 프래그먼트를 보여준다. 보통 화면전환으로 intent를 이용한 액티비티전환을 많이 배우는데 속도도 느리고 코드관리도 어려와 나온 기능이다. 위와같은 그림으로 MainActivity에 프래그먼트가 들어갈 틀을 선언하고 틀 위에 올려놓을 프래그먼트를 여러개 만들어 끼우고 빼고 하는게 가능하다. 그럼 본격적으로 만들어보자 activity_main.xml 위의 이미지처럼 버튼두개를 만들고 프래그먼트가 들어갈 FrameLayout을 만들었다. 아직 아무 프래그먼트가 들어가지 않았으므로 텅 비.. 2021. 6. 30.
반응형