Kotlin(5)
-
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 -
res 레이아웃이 다를 때 / FindViewById/ 자바 코틀린 코드 에러 해결
res 레이아웃이 다를 때 / FindViewById/ 자바 코틀린 코드 에러 해결 위 사진은 kotlin 코드 - 좌측 중간쯤 보이는 activity_main과 dialog1, toast1- 3개의 레이아웃을 조합하여 작성 중이다. 그러다보면 친절한 kotlin은 변수나 개체 구분을 안해줄때가 많다. findViewById() 메소드도 그 중 하나인데 이렇게 여러가지 레이아웃을 하나의 코틀린 코드로 작성할 때 출처를 밝혀주지 않으면 AVD가 터진다(=실행되지 않는다) 다만, 코틀린이 activity_main 레이아웃을 베이스로 깔고 있다고 말해주니까(빨간 선) activity_main 레이아웃은 findViewById에 출처를 따로 밝혀줄 필요가 없다. 그래서 파란색은 findViewById에서 dia..
2022.03.23 -
안드로이드스 스튜디오(Android studio) - xml, 화면 분할 똑같이 분할, 버튼 똑같이 분할, 화면 나누기, 버튼 크기 똑같이 채우기
layout_weight=1 모바일 화면 안에 동등한 크기로, 똑같은 크기로 버튼이나 공간을 매기고 싶을 때 레이아웃, 버튼 등에 쓰이는 xml 코드 요거슨 첫번째 사진의 버튼 xml코드로 버튼 2개를 가로로 일정하게 위치시켜주었다. 그럼 레이아웃은 호리젠탈(horizontal)임을 까먹지 말자. (사진에는 짤림 ㅠㅠ) 그래서 버튼 각각에 layout_weight="1"을 넣어준다. 요기선 오른쪽 사진처럼 하얀색, 초록색, 파란색 공간을 동등하게 화면에 보이게 하기 위해 각각 차지하는 리니어 레이아웃 (Linearlayout)에 layout_weight="1"을 넣어주었다. 세로로 배치되니까 부모 레이아웃은 버티컬 (Vertical)이 된다.
2022.03.19 -
LinearLayout 리니어 레이아웃으로 분할 화면 만들기 /Vertical, Horizontal/ 리니어 레이아웃 다중 분할
문제는 리니어 레이 아웃으로 화면 구성을 하는 XML 코드 작성하기 문제를 풀기 전에 고민해야할 사항 1. Mother Layout 방향이 Horizontal(수평형)인지 Vertical(수평형)인가? ->여기서 Mother Layout은 파란색과 빨강이므로 Vertical 2. 안에 내부 레이어는 어떻게 생겨 먹었나. -> 전체 파랑이 속, 빨간분할, 그 속에 초록 분할, 그리고 그 안에 주황분할 분할 레이아웃은 각각 위치할 곳 사이에 넣어준다. 3. 내부 비율은 어떻게 생겨 먹었나. ->다행히 모두 1:1 리니어 레이아웃이니까 layout_weight="1"을 써주면 된다. 아래 사진은 다른 예제인데 LinearLayout에서 비율을 어떻게 써먹는지 잘 보여주는 예시임 LinearLayout xmln..
2022.03.16 -
LinearLayout , GridLayout, TableLayout =계산기 만들기
리니어레이아웃(LinearLayout) orientation vertical horizontal 리니어레이아웃 안에 포함될 위젯의 배치를 왼쪽 위부터 수직 방향으로 쌓음 리니어레이아웃 안에 포함될 위젯의 배치를 왼쪽 위부터 수평 방향으로 쌓음 버튼을 만들어도 테이블 레이아웃은 layout_weight를 1로 설정, 리니어 레이아웃은 layout_weight를 1로 두면서 layout_width, height ="wrap_content"로 둔다 테이블 레이아웃 •행과 열의 개수를 지정한 테이블 형태로 위젯을 배열 이런식으로 를 계속 생성하고 너비는 Span=" " 으로 조절 주의할 점은 layout_weight를 wrap_content나 match_parent로 하면 값이 안먹힌다. 무조건 1 ex)너비를..
2022.03.16