본문 바로가기

📁App Developing/Kotlin 강좌12

타이틀 바 커스터마이징 타이틀 바 없애기 res > values > themes > themes.xml파일의 style 태그의 parent를 수정하자. 2022. 9. 13.
ListView 리스트뷰는 기본적으로 Adapter라는 것을 통해 데이터와 뷰를 연결한다. 우선 가장먼저 데이터 클래스를 원소로 갖는 코틀린 리스트로 데이터 뭉치를 구성한다. 이렇게 만든 코틀린 리스트를 Adapter에 인자로 전달한다. 리스트뷰를 만들 때 가장 집중해야 하는 곳은 Adapter의 구성이다. arrayAdapter처럼 기본 제공하는 adapter를 사용해도 되고 직접 커스텀하여 사용해도 된다. Adapter는 입력받은 데이터뭉치로 listView를 체워넣는 역할을 한다. 간단한 리스트뷰 생성 하나의 항목이 하나의 문자열로 이루어져있으며, 한번에 한 항목만을 선택할 수 있는 라디오 버튼을 제공하는 리스트뷰를 만들어 보았다. package com.hush.listviewcopy import androidx... 2022. 9. 4.
레이아웃 7장 177p부터 시작하는 내용임. LinearLayout 선형으로 배치 orientation값에 따라 horizontal 또는 vertical 방향으로 요소들을 나열. layout_weight로 여백을 어떻게 체울 것인지 설정 가능 중첩 가능 요소의 gravity 속성을 활용하면 그 요소의 내용을 어떻게 정렬할 것인지 정할 수 있으며 layout_gravity속성을 활용하면 그 요소를 어떻게 정렬할 것인지 정할 수 있다. RelativeLayout 상대 위치로 배치 어떤 뷰의 왼쪽 혹은 오른쪽에 요소를 배치하도록 하는 레이아웃이다. FrameLayout 겹쳐서 배치 똑같은 위치에 여러 뷰를 겹쳐서 놓고 어떤 순간에 하나의 뷰만 출력할 때 사용한다. 그래서 대부분 뷰의 표시 여부를 설정하는 visibil.. 2022. 8. 27.
스탑워치 메모 Floating Action Button 공중에 떠있는 듯한 느낌을 주는 원형의 버튼이며, 이미지를 넣어서 디자인하는 버튼이다. timer 일정 시간이 지날때마다 특정 코드를 실행시키고 싶다면 timer를 사용한다. 사용법은 타이머를 담을 변수를 선언한 뒤, 그 변수에 타이머를 정의하면 실행된다. 예시 코드는 다음과 같다. private var timerTask : Timer? = null //.... timerTask = timer(period = 10) { time++ val sec = time / 100 val milli = time % 100 runOnUiThread { secTextView.text = "$sec" milliTextView.text = "$milli" } } 일단 null로 초기.. 2022. 7. 25.
Bmi 앱 메모 이전 화면으로 돌아가는 업 네비게이션 startActivity를 활용하여 새로운 액티비티를 띄웠을 때 뒤로가기 버튼을 활용하여 이전 액티비티로 돌아갈 수는 있다. 하지만 사용자가 이전 화면으로 돌아갈 수 있다는 것을 알아챌 수 있는 단서는 화면 어디에도 없다. 업 네비게이션을 만들면 상단에 이전 화면으로 돌아가기 위한 화살표를 만들 수 있다. 프로젝트의 manifest 폴더 내의 xml파일을 열자. 프로젝트에 생성된 모든 액티비티가 액티비티 태그로 만들어져 있을 것이다. 여기서 뒤로가기 버튼을 표시할 액티비티를, 뒤로갔을때 보일 액티비티의 자식으로 설정해주면 된다. 예시 코드에서는 ResultActivity의 부모 Activity로 MainActivity를 설정해 주었다. 이렇게 간단하게 액티비티간의 상.. 2022. 7. 24.
kotlin 기초 문법 변수의 선언 var a : String = "asdf" val a : String = "qwer" var로 변수를, val로 상수를 선언할 수 있다. 변수명 뒤에 콜론을 적고 자료형을 적어줄 수 있다. 적지 않더라도 형추론을 통해 변수의 자료형을 결정해준다. 변수에 지정된 자료형과 일치하지 않는 값을 대입할 수 없다. 함수 fun 함수명(인수1 : 자료형1, 인수2 : 자료형2, ... ) : 반환자료형{ //함수 내용 } 반환값이 없다면 Unit형을 사용한다. 이는 자바의 void에 대응한다. 자료형 코틀린의 기본 자료형은 모두 객체이다. 숫자형 코틀린에서 숫자를 표현하는 자료형은 Double, Float, Long, Int, Short, Byte 등을 사용할 수 있다. 리터럴이란 자료형을 알 수 있는.. 2022. 7. 23.
kt 파일에서 xml 파일의 요소에 접근하기 Import를 통해 id로 편리한 접근 우선 import 를 통한 편리한 접근 방식을 사용하고싶다면 다음 코드를 build.gradl (Module~) 파일의 plugins{} 안에 넣어주자. id 'kotlin-android-extensions' 그럼 이제 kt파일에서 접근하고자 하는 요소의 id값을 입력하면 자동으로 필요한 코드가 import 된다. Binding을 이용하여 접근 가장 권장되는 방법이다. 우선 그래들 파일의 android 하위에 다음과 같이 선언해주자 viewBinding { enabled = true } synk해준 다음, 바인딩을 만들면 된다. 코틀린 파일로 이동한 다음 바인딩 객체를 획득하자. 이때 액티비티 이름을 적어줘야하는데 xml파일의 이름이 acticity_main이었다면.. 2022. 7. 23.
명언 앱 만들기 커스텀폰트 적용 ttf파일을 다운받는다. 폰트이름에 대문자가 있어서는 안되니 필요할 경우 이름을 변경해주자. res폴더의 하위폴더로 font 폴더를 만들고 ttf파일을 넣어준다. 이제 layout 폴더의 xml 파일에서 폰트를 적용할 객체에 android:fontFamily에 속성값으로 파일 위치를 전달해주면 된다. kotlin List 코틀린에서는 리스트를 사용할 수 있으며, 읽기전용인 리스트와 수정가능한 리스트가 있다. 읽기전용 리스트는 listOf함수를 활용하여 만들 수 있다. val name = listOf("Kim", "Hong", "Park") 우리가 일반적으로 많이 사용하는 수정가능한 리스트는 mutableListOf 함수를 사용해야 한다. listOf함수와 달리 자료형까지 전달해주어야 한다.. 2022. 7. 22.
주사위 앱 만들기 DataBinding이란? 지금까지는 우리가 요소에 이벤트를 연결할때 findViewById등으로 요소를 찾아 변수에 저장한 뒤 setOnClick등의 메서드로 이벤트를 연결해주었다. DataBinding을 이용하면 다른 방식으로 이러한 기능을 수행할 수 있다. 우선 DataBinding을 이용하려면 gradle 파일에 코드를 작성해주어야하는데, 다음과 같이 하면 된다. 그리고 main Activity의 xml파일을 레이아웃으로 감싸준다. 그리고 main Activity의 kt파일에 와서 다음과 같이 적어준다 그리고 setOnClickListener를 적어준다. 왜 이짓거리를 하는건지 아직 전혀 모르겠다 val vs var val은 상수이고 var은 변수이다. js의 const같은 문법을 생각하면 이해가.. 2022. 7. 21.
Twice 어플 만들기 이번 어플에는 스플래쉬를 넣을것이다. 우선 스플래쉬를 표현할 액티비티를 하나 생성한다. 이후 manifest의 xml파일에서 intent-filter 태그를 잘라서 splash activity 하위로 넣어주자. 이제 activity_splash.xml 파일에 ImageView 태그를 만들고 스플래쉬 화면에 보일 이미지를 선택하면 스플래쉬 화면에서 원하는 이미지가 보임을 확인할 수 있다. 하지만 스플래쉬 화면이 넘어가지 않을 것이다. 화면이 자동으로 넘어가도록 코드를 짜 주어야 한다. 이를 위해 SplashActivity 파일에 다음과 같은 핸들러 코드를 넣어 줄 것이다. Handler().postDelayed({ startActivity(Intent(this, MainActivity::class.java.. 2022. 7. 20.
BTS 사진 어플 만들기 사진은 app>res>drawable 폴더에 넣어주자. 이 어플을 만들때는 레이아웃 중 LinearLayout을 사용할 것이다. 레이아웃에는 세 종류가 있는데 아직 몰라도 된다. 이미지를 보여주기 위해 ImageView를 넣어주자. width와 height는 각각 100dp로 설정하자. 이제 ImageView에 보일 이미지를 android:src 로 지정하여 선택해주자. Design창에 이미지가 잘 들어갔음을 확인할 수 있다. 이런 ImageView를 여러개 넣으면 여러 사진을 보여줄 수있다. 레이아웃에 대한 이해 잠시 아까 언급한 레이아웃에 대해 알아보고 가자. Linear Layout 글을 쓰는것처럼 좌우 공간이 있다면 왼쪽에서 오른쪽으로, 좌우 공간이 다 차면 아래쪽으로 요소들을 배치하는 레이아웃이.. 2022. 7. 19.
Android Studio 이해 프로젝트를 처음 생성하면 위 사진과 같은 환경을 볼 수 있다. 1번과 2번 파일 모두 한 Activity, 즉 한 화면에 관련된 파일이다. 1번 파일은 화면을 제어하기 위한 코드가 담긴 파일이고 2번 파일은 화면의 구성요소에 대한 코드가 담긴 파일이다. 웹에 비유하자면 1번은 JS, 2번은 html/css같은 느낌인 것 같다. Gradle Scripts는 라이브러리같은, 우리가 들여오는 외부 기능들과 관련된 것들이다. ALT + ENTER로 해당 모듈을 바로 import할 수 있다. 2022. 7. 17.