본문 바로가기

Kotlin/안드로이드 공부

(53)
오류 삽질 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인가 누르면 해결됨!!
레이아웃 - floatingActionButton 둥근 형태의 버튼 - 벡터 이미지 사용 res폴더 우클릭 > new > Vector asset에서 아이콘 저장하면 res > drawable폴더에 저장 - 벡터 이미지를 사용하면 벡터 드로어블 하위 호환 설정해야함 모듈 수준의 그레이들 파일 defaultConfig{ vectorDrawables.useSupportLibrary = true } - 저장한 이미지 사용 ex) 뷰id.setImageResource(R.drawable.이미지파일이름) - 모든 뷰는 제약이 필요 - scrollView의 내부에 있는 LinearLayout은 수직으로 자식 뷰를 추가하는 특징이 있다. 위에서부터 아래로 쌓는다. val textView = TextView(this) textV..
SharedPreference 설정값 같이 간단한 데이터 저장할 때 사용 파일이 앱 폴더 내에 저장 data/data/(package_name)/shared_prefs/SharedPreference 사용자 정보나 네트워크정보와 같은 간단한 데이터 저장 데이터 불러오기 (각 액티비티에서 공통적으로 접근할 수 있기 때문에 데이터 전달용으로 사용) save함수 private fun saveDate(height: Int, weight: Int){ val pref = PreferenceManager.getDefaultSharedPreferences(this) // Activity 내부에 구현되는 경우 context대신 this로 사용 val editor = pref.edit() editor.putInt(" key ", value) .putIn..