Kotlin(14)
-
Kotlin / lateinit var /늦은 초기화 기법
Kotlin / lateinit var /늦은 초기화 기법 kotlin에서 val는 상수를 정의할 때 사용한다. 상수는 String같은 기본 자료형으로 사용이 가능하고 절대 변경할 수 없는 값(그렇다고 절대로 변경못하는 건 아니다) 클래스의 속성이나 함수의 지역 변수로는 사용이 불가능 그러다 lateinit var가 등장했다. 알쏭달쏭한 코딩의 세계... val처럼 정의해놓고 코딩을 시작한다면 쉽겠지만 변수의 첫 상태를 정의하기 어려울 때가 있다고 한다. val a = 객체처리 이게 어렵다면? 특히나 코틀린은 null 사용을 싫어해서 val a= null을 지양한다고 한다. 그때 사용하는 게 lateinit val 그래서 변수 값을 "나중에 초기화할께요!"라고 명시하는 게 latieint val이다. f..
2022.04.30 -
SQLite 데이터 베이스 구축 / SQLite란? /SQLite 접속하기/Android SDK Locations 경로 확인하기
SQLite 관계형 데이터 베이스에 속함 관계형 데이터 베이스는 1.업무가 변화할 경우 다른 DBMS(데이터 베이스를 관리하는 시스템 혹은 소프트 웨어)에 비해 변화에 쉽게 순응할 수 있는 구조 2. 유지 보수 편리 3. 대용량 데이터 관리와 데이터 무결성을 잘 보장 4. 시스템이 전반적으로 느림 SQLite는 디바이스 내부 데이타 베이스라서 1. User가 따로 필요없고 비번도 따로 필요없다. 2. 그 외 단계에서 테이블을 생성하고 insert, select, update, delete 모두 가능하다. 윈도우OS에서는 cmd로 sqlite 데이터 베이스를 만들고 바꾸고 등등 할 수 있는데 경로를 잘 설정해야 한다. 노랑이 아닌 것들은 (테이블을 생성, 수정, 삭제 등)을 할 경로 설정 실패 흔적들.....
2022.03.29 -
SD카드에서 파일 읽기 /SD Card permission
컴퓨터의 운영체제를 안드로이드 스튜디오와 비교해보면 OS는 운영체제 (윈도우나 맥 등등) /디스플레와 앱 등은 AVD와 같다. 파일처리도 운영체제(예컨데 윈도우)가 파일 탐색기를 통해 업로드 메모리 내부, 외부에 업,다운로딩이 가능한 것처럼 안드로이드 스튜디오에서도 운영체제와 AVD간 파일 읽기가 가능하다 이를 위해 AndroidManifest.xml 파일에 SD 카드를 사용할 수 있도록 퍼미션 및 application에 관련 속성 추가한다.
2022.03.24 -
res 레이아웃이 다를 때 / FindViewById/ 자바 코틀린 코드 에러 해결
res 레이아웃이 다를 때 / FindViewById/ 자바 코틀린 코드 에러 해결 위 사진은 kotlin 코드 - 좌측 중간쯤 보이는 activity_main과 dialog1, toast1- 3개의 레이아웃을 조합하여 작성 중이다. 그러다보면 친절한 kotlin은 변수나 개체 구분을 안해줄때가 많다. findViewById() 메소드도 그 중 하나인데 이렇게 여러가지 레이아웃을 하나의 코틀린 코드로 작성할 때 출처를 밝혀주지 않으면 AVD가 터진다(=실행되지 않는다) 다만, 코틀린이 activity_main 레이아웃을 베이스로 깔고 있다고 말해주니까(빨간 선) activity_main 레이아웃은 findViewById에 출처를 따로 밝혀줄 필요가 없다. 그래서 파란색은 findViewById에서 dia..
2022.03.23 -
setMultiChoiceItems / 다중 선택자/ 코틀린 멀티 초이스/ setSingleChoiceItems / 단일 선택자/ 싱글초이스
setMultiChoiceItems 다중 선택자 문법 setOnClickListener 얘처럼 이벤트가 정해진 인자들, 배열이 있는 상황에서 다중 선택자는 말그대로 "여러개를 선택한다"는 기능을 담고있따. 1. cursor : 들고 올 인자 2. isCheckedColumn: 체트되어있는 인자 3.4. 은 {람다식}으로 뺀다. 의미는 멀티 초이스를 할 경우 발생할 이벤트를 말한다. dlg(인자).setMultiChoiceItems(versionArray, checkArray){dialog, position, isChecked-> if(isChecked) btn1.text=versionArray[position] // 체크가 되어있으면 버튼으로 들고 오고 else btn1.text="" // 체크가 되어 ..
2022.03.23 -
탭 호스트 (TAB HOST) 이해하기/ 탭호스트와 액션바의 차이/ 탭 호스트 중요점
탭 호스트 (TAB HOST) 액션바가 LinearLayout안에 버튼과 셋업이 함께있는 구성이라면 (아래 그림 참조) 탭호스트는 버튼 따로 내용 따로, 그리고 그 두개를 연결하는 구성이다. 탭 호스트에서 중요한건 1. XML코드에서 맨처음
2022.03.21