본문 바로가기

안드로이드/[Kotlin]

(14)
[Kotlin] 상단의 Status Bar를 투명하게 만들어 보자. Status Bar 란? 그림에서 보는것과 같이 휴대폰의 상단에 시계/배터리/와이파이 등의 상태를 확인할 수 있는 상태표시바를 Status Bar라고 한다. 어플을 만들때에는 사용자들이 어플에 더 집중할 수 있도록 이 Status Bar의 색상을 바꾸곤 하는데, 오늘은 이 Status Bar의 색을 투명하게 바꾸는 법을 알아보자. 1. themes.xml true 위 코드를 themes.xml 에 추가하자. windowsTranslucentStatus 값은 Status Bar의 색을 투명하게 만드는 여부를 나타낸다. 이 값을 true로 적용하면 상단의 Status Bar의 색상이 반투명해진다. 추가적으로 만약 Navigation Bar의 색상도 반투명하게 만들고자 한다면 true 이 코드를 추가하면 된다..
[Kotlin] ListView 생성. Custom Adapter 사용하기 ListView란 리스트 형태로 된 스크롤 가능한 항목 data들을 나타낼 때 사용하는 뷰 그룹이다. ListView는 adapter를 반드시 연결 해야만 사용이 가능한데, adapter는 기본적으로 kotlin에서 기본적으로 제공되는 게 있고, 직접 만들수도 있다. 전자로는 ArrayAdapter를 사용해 보고, 후자로는 BaseAdapter를 상속 받아서 적접 Custom Adapter를 만들어 보겠다. ArrayAdapter package com.example.listviewkt import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.ArrayAdapter import com.examp..
[Kotlin] Activity 전환 & 데이터 전달 (Intent, putExtra...) 우선 시작하기 전 안드로이드의 4대 구성요소에 대해 알아보자. - 1. Activity 사용자에게 보여주는 UI 화면을 구성하는 컴포넌트이다. (웹의 HTML 같은 느낌) Activity 클래스를 상속받아 사용한다. 하나의 어플리케이션에 최소 1개 이상의 Activity가 존재해야 한다. 사용하려면 manifest에 선언 해야한다. 화면 UI구성 이외에 앱의 동작을 구현하는 Java나 Kotlin 코드 부분도 필요하다. - 2. Service 프로세스와 같은 의미의 컨포넌트이다. 항상 백그라운드에서 프로세스가 돌고, 여러 일들을 처리한다. 화면이 존재하지 않고, Background에서 실행되는 컴포넌트이다. 따라서 UI가 없다. Service 클래스를 상속받아 사용한다. 사용하려면 manifest에 선언..
[Kotlin] View Binding (뷰 바인딩) 예전에는 xml 파일의 뷰들과 연결하기 위해 findViewById를 사용했다. (물론 지금도 사용 가능하긴 함) Kotlin을 사용할 땐 Kotlin-android-extensions을 사용할 수 있었는데, 서로다른 xml파일에서 동일한 id 를 사용할 경우 코드가 헷갈리는 경우가 많은 등의 이유로 올해부터 지원이 중단된다고 한다. 그래서 구글에서는 Android Studio 4.1 버전부터 View binding을 사용하도록 안내하고 있다. View Binding 이란?? View binding을 활성화 하면 각 XML 파일에 대한 바인딩 클래스가 생성이 된다. 바인딩 클래스의 인스턴스를 통해서 view에 접근할 수 있고, 레이아웃에 ID가 있는 view를 참조할 수 있다. 다시 설명하자면 View ..
[Kotlin] 클래스의 상속(Inheritance)과 오버라이딩(Overriding) 코틀린의 모든 클래스에는 공통의 superclass인 Any 가 있으며, 이는 수퍼타입이 선언되지 않은 클래스의 기본 superclass이다. 기본적으로 코틀린의 클래스와 메소드는 기본적으로 final 이여서 상속이 불가능하다. 클래스를 상속 가능하게 하려면 open 키워드를 사용해야 한다. 상속을 함으로써 아래와 같은 효과(?)를 얻을 수 있다. 이미 존재하는 클래스를 확장하여 새로운 속성이나 함수를 확장할때 여러 클래스들의 공통점들을 뽑아서 코드관리를 편하게 하고자 할때 open class Base(p: Int) class Derived(p: Int) : Base(p) 위 코드처럼 서브 클래스에 주 생성자(Primary Constructor)가 있는 경우 주 생성자의 매개 변수를 사용하여 수퍼 클래스..
[Kotlin] 클래스와 생성자(constructor) 코틀린에서 클래스를 선언 할 때는 class 키워드를 사용한다 class Person { /*...*/} Constructors (생성자) 코틀린에서 클래스는 하나의 주(primary) 생성자와 여러개의 부(secondary) 생성자를 가진다. 주 생성자(Primary Constructor) 주 생성자는 클래스의 헤더에서 클래스의 이름 뒤쪽에 정의할 수 있다. class Person (var firstName: String, var brithYear: Int) { /*...*/} 위의 방식은 클래스의 속성들을 선언함과 동시에 생성자를 선언하는 방법이다. 메인함수에서 var a = Person("권석준", 1999) 라는 코드로 생성자를 호출하면 클래스의 인스턴스를 만들어서 반환한다. 생성자는 인스턴스의 ..