본문 바로가기

Kotlin

(66)
가로모드로 고정 onCreate()에 requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE or 매니페스트 파일에 에 android:screenOrientation="landscape"
toast 대신 crouton 크루통ㅋㅋㅋ 뭔가 했더니 수프에 넣는 그 빵같은거..귀엽다 https://github.com/keyboardsurfer/Crouton keyboardsurfer/Crouton Context sensitive notifications for Android . Contribute to keyboardsurfer/Crouton development by creating an account on GitHub. github.com github보고 코드만 넣어서 쓰면 되는데 ㅠ 크루통코드실행하고 finish()하면 너무 빨리닫혀서 duration조절하려했는데 예시가 너무 없어서 방법을 못찾겠다 ..흑 크루통helper도 못쓰겠고.. https://github.com/codepath/android-crouton-sa..
프래그먼트, Glide 라이브러리 아직도 용어가 바로 안들어온다.. 프래그먼트: 사용자 인터페이스 모음 하나의 화면을 여러부분으로 나누어보여줌. 여러개의 프래그먼트가 모여 액티비티 하나를 구성 재사용 가능 onCreateView() : 레이아웃 파일로부터 읽어오기. 레이아웃 생성 전 호출하여 레이아웃 뷰 만듬 ( 레이아웃 뷰가 완성되면 onViewCreated()로 전달되며 이벤트 처리 등 수행 ) onCreate() : 프래그먼트 생성시 호출. 인자가 넘어온다면 여기서 변수에 담는다. file > new > Fragment > 선택 --- Glide 라이브러리를 쓰면 미사용 리소스 자동해제, 메모리 효율적으로 관리, 비동기 로딩으로 UI끊김없음 https://github.com/bumptech/glided bumptech/glide A..
Content Provider 안드로이드 4대 컴포넌트 액티비티 : 화면 콘텐츠 프로바이더: DB, 파일, 네트워크의 데이터를 다른 앱에 공유 브로드캐스트 리시버 : 앱이나 기기가 발송하는 방송 수신 (ex - 문자) 서비스 : 화면이 없는 백그라운드 작업에 용이 1. 외부 저장소 권한 앱에 부여 2. 위험권한이므로 사용자에게 허용받기 3. contentResolver객체를 이용하여 데이터를 cursor 객체로 가지고 온다. 1. 프로바이더로 기기의 사진 경로 얻기 : contentResolver객체의 query(어떤 데이터(ex - EXTERNAL_CONTENT_URI), 어떤 항목의 데이터, 데이터 가져올 조건(전체는 null), 세번째 인자와 조합하여 조건 지정, 정렬 방법 지정) // 모든 사진 가져오기 private fun ..
커스텀 뷰, onDraw() 1. View 클래스 상속(alt+enter)받는 새로운 클래스 생성 2. 필요한 메서드 오버라이드 mainactivity - onCreate()에서 직접 인스턴스 생성해 사용 가능 tiltVIew = TiltVIew(this) setContentView(tiltVIew) -- onDraw()는 뷰에 모양을 그린다 ex) canvas에 Paint로 invalidate()는 뷰의 onDraw()를 다시 호출
오류 삽질 kotlin uninitializedpropertyaccessexception lateinit property items has not been initialized 빌드는 되는데 앱 실행이 안됐다. 오류 메시지를 보니 lateinit가 초기화가 안된다해서 하루종일 헤맸는데 정말 말그대로 초기화를 안함^^......왜지 언제부터지? kotlin.NotImplementedError: An operation is not implemented: not implemented 이건 implement members를 통해 자동으로 구현된 멤버에 있던 TODO 코드가 문제였다. 주석처리로도 안먹히고 그냥 TODO문장을 지웠더니 해결되었다.
액티비티의 생명주기 안드로이드 책에서 원하는 부분만 보려고 했는데 앞에 스킵하면 안될 거 같아서 그냥 다시 앞으로 돌아왔다.... 특정 타이밍에 호출되는 메서드 = 호출 메서드 1. onCreate()는 생성 시점에 호출되므로 오버라이드하면 액티비티가 시작되면서 코드실행! onCreate() > onStart() > onResume() 순으로 실행 2. 액티비티가 종료될 때는 화면에서 보이지 않는 순간 일단 onPause()호출 완전히 보이지 않게 되면(?) onStop() 호출 마지막으로 onDestroy() 호출 복잡한 앱에서는 액티비티가 종료될 때 메모리에서 해제하는 객체가 있을 수 있으므로 onDestory()를 오버라이드한다. 3. 액티비티를 재개할 때(백그라운드 실행 - 다른 앱 실행 or 홈키 누르기 or 전원..
implementation 'com.android.support:appcompat-v7:28.0.0' 오류해결방법 implementation 'com.android.support:appcompat-v7:28.0.0' 에 빨간줄이 뜬다 기본 세팅인데 도대체 왜 오류가 나는거야?ㅂㄷㅂㄷ issue id: gradlecompatible solution어쩌구도 써있는데 안먹히고 스택오버플로우에서 나온 해결방법 다 안됐다 ㅠㅠ 알고보니 API29부터인가 android.support 라이브러리를 지원하지 않는다고 한다. 해결방법은 androidx로 바꿔주는건데 다행히 지원하구 있다 Refactor > Migrate to AndroidX 클릭하면 압축파일 어쩌구나오는데 그대로 진행하고 Do factor인가 누르면 해결됨!!