본문 바로가기

Android/Kotlin App11

[Kotlin App] 여러 mp3파일을 재생하는 mp3 Player 만들기 강의자료 30페이지의 직접풀어보기 13-2를 참조하여 아래와 같은 앱을 작성하시오. 1. 음악이 종료되면 자동으로 초기상태로 전환하시오.(Hint: mPlayer.isPlaying로 재생중인지를 확인할 수 있음) 2. 시크바로 음악의 해당 부분을 재생할 수 있음 3. 음악 파일은 raw 폴더에 넣어도 되고, SD카드에 넣어도 됨 1. raw폴더에 저장 2. sd카드에 저장 Manifests.xml에 permission 추가 2021. 6. 8.
[Kotlin App] 서비스와 브로드캐스트 리시버 1. 서비스 2. 브로드캐스트 리시버 3. 콘텐트 프로바이더 서비스 일반적으로 화면없이 동작하는 프로그램을 뜻함 데몬(daemon), 백그라운드 프로세스라고도 함 서비스는 백그라운드에서 실행되므로 화면과 상관없이 계속 동작함 화면이 종료되어도 계속되는 음악 서비스 만들기 버튼을 클릭하면 음악이 시작되고, 화면이 종료되어도 음악이 계속 흐르는 서비스 또한 로그캣을 활용하여 메소드가 실행되는 순서를 확인해봄 xml Service클래스를 상속받아 구현한 MusicService클래스 생성 (Kotlin클래스) package com.cookandroid.kotlinapp0607 import android.content.Intent import android.media.MediaPlayer import androi.. 2021. 6. 7.
[Kotlin App] 파일 처리 내장 메모리에 파일 쓰기/읽기 raw파일 읽어오기 SD카드에 디렉터리 생성/삭제, 파일 쓰기/읽기 시스템 폴더의 폴더/파일 목록 확인하기 1-1. 내장 메모리에 파일 쓰기 : openFileOutput("파일명",모드) var outFs = openFileOutput("파일명", Context.MODE_PRIVATE) var str = "파일 내용" outFs.write(str.toByteArray()) outFs.close() 1-2. 내장 메모리에 파일 /읽기 : openFileInput("파일명") try { var inFs = openFileInput("파일명") var txt = ByteArray(inFs.available()) // 읽어들일 파일의 크기만큼 메모리 할당 inFs.read(txt.. 2021. 5. 11.
[Kotlin App] DatePickerDialog / TimePickerDialog 첫 번째 이미지는 DatePickerDialog, 두 번째 이미지는 TimePickerDialog를 사용한 화면이다. xml파일 : 각 위젯의 id확인하기 MainActivity.kt package com.cookandroid.kotlinapp0503_2 import android.app.DatePickerDialog import android.app.TimePickerDialog import android.os.Build import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.DatePicker import androidx.annotation.RequiresApi import kotlinx.. 2021. 5. 4.
[Kotlin App] Action Bar와 Flagment 액션바 태블릿과 같은 대형 화면에서 여러 화면을 사용하기 위해 고안됨 액션바를 구현할 때는 프래그먼트를 사용하는 것이 좋음 프래그먼트 액티비티보다 작은 단위의 화면 대형화면에서는 액티비티 화면을 분할하여 표현할 수 있음 소형화면에서는 화면의 분할보다는 실행중에 화면을 동적으로 추가하거나 제거하는데 더 많이 활용됨 연습문제 실습 탭별로 다른 화면을 출력한다. 탭은 액션바를, 화면은 프래그먼트를 사용한다. 1. 액션바를 이용해 탭을 붙여준다. 2. MyTabFragment 클래스를 만들어준다. (프래그먼트 객체 생성을 위함) 3. onTabSelected메소드를 구현한다. (여기서 프레그먼트 생성) MainActivity package com.cookandroid.kotlinapp0503 import and.. 2021. 5. 4.
[Kotlin App] TabHost 탭호스트 여러 탭을 두고 각 탭을 클릭할 때마다 해당 화면이 나오도록 설정하는 뷰 컨테이너 탭스펙 탭을 구성하는 요소들의 집합 탭스펙을 준비하여 탭호스트에 붙여넣으면 탭이 됨 탭호스트를 사용할 때 주의사항 1. TabWidget의 id 속성값은 반드시 "@adroid:id/tabs"값을 지정해야 함. 탭호스트, 탭위젯, 프레임레이아웃은 id가 지정되어 있는데 이 지정된 id를 변경하지 않고 그대로 사용해야 안드로이드가 탭호스트의 구성을 인식함 2. 탭호스트의 형태는 리니어 레이아웃 > 탭 위젯 > 프레임 레이아웃이며, 프레임 레이아웃에 보여줄 내용을 포함시킴 탭호스트를 사용한 Kotlin코드 var tabHost = this.tabHost //탭호스트 변수 생성 //탭스펙 생성 var tabSpec1 =.. 2021. 5. 3.
[Kotlin App] 목록 대화상자 대화상자(dialog) 화면에 메시지를 나타낸 후 확인이나 취소같은 사용자의 선택을 받아들이는 경우에 사용함 토스트보다 좀 더 강력한 메시지를 보여줄 때 적당함 대화상자 생성 AlertDialog.Builder클래스로 생성 용도에 따른 설정 setTitle() : 제목 설정 setMessage() : 내용 입력 setIcon() : 아이콘 설정 setPositiveButton() : 확인버튼 setNegativeButton() : 취소버튼 setItems() : 목록 출력 setSingleChoiceItems : 라디오버튼 목록 출력 setMultiChoiceItems : 체크박스 목록 출력 대화상자 화면 출력 show() 단순 메시지 출력 var dlg = AlertDialog.Builder(this@.. 2021. 4. 19.
[Kotlin] ?(물음표)와 !!(느낌표 두개)의 사용 코틀린에서 물음표(?)와 느낌표 두개(!!)의 경우 null의 사용과 관련되어있는 문자임 코틀린은 다른 언어들보다도 null에 민감해서 변수를 선언할 때 null의 여부에 대해 표시해주어야 하는 경우가 있음 코틀린의 특징 1. 기본적으로 코틀린은 변수에 null값을 넣지 못함 2. 변수에 맞는 문자(? or !!)를 데이터 형식 뒤에 붙여주어야 함 물음표(?)의 사용 null이 들어올 수 있는 경우에 붙여줌 var notNull:Int = null//오류 var notNull:Int? = null//정상 느낌표 두개(!!)의 사용 null값이 절대 들어오면 안되는 경우에 붙여줌 var notNull:Int = 0//기본값은 null허용x var okNull:Int? = 10//null이 들어올 수 있음을.. 2021. 4. 17.
[Kotlin App] 메뉴 - 옵션메뉴, 컨텍스트 메뉴 메뉴 옵션 메뉴 키패드의 메뉴 버튼 또는 화면 오른쪽 위의 메뉴 아이콘을 눌렀을 때 화면 하단에 나오는 메뉴 화면이 넘어갈 정도로 목록이 많으면 스크롤해서 선택 가능함 옵션 메뉴에서 XML파일을 이용하는 방식 1. 메뉴 폴더 생성 및 메뉴 XML파일 생성·편집 -> 메뉴 코딩 2. Kotlin코딩 : onCreateOptionMenu() 메소드 오버라이딩 -> 메뉴 파일 등록 3. Kotlin코딩 : onOptionsItemSelected() 메소드 오버라이딩 ->메뉴 선택 시 동작할 내용 코딩 컨텍스트 메뉴 위젯 등을 롱클릭하면 나오는 메뉴 컨텍스트 메뉴에서 XML파일을 이용하는 방식 1. 메뉴 폴더 생성 및 메뉴 XML파일 생성·편집 -> 메뉴 코딩 2. Kotlin코딩 : onCreate() 안에 .. 2021. 4. 16.
[Kotlin App] 액티비티 / 인텐트 액티비티(Activity) 화면을 구성하는 가장 기본적인 컴포넌트 디폴트 화면이 액티비티임 안드로이드폰에 나타나는 화면 하나하나를 말함 안드로이드의 4대 컴포넌트(액티비티, 서비스, 브로드캐스트 리시버, 콘텐트 프로바이더) 중 가장 핵심적인 요소 서비스(Service) 눈에 보이는 화면(액티비티)과 상관없이 백그라운드에서 동작하는 컴포넌트 백신프로그램 / 백그라운드 음악 재생 로컬에서 동작하는 서비스는 아래 세 단계를 거침 서비스 생성 -> 서비스 시작 -> 서비스 종료 메인 액티비티에서 세컨드 액티비티를 호출하는 코드 - 단방향 //SecondActivity.kt buttonNewActicity.setOnClickListener { var intent = Intent(this, SecondActivit.. 2021. 4. 13.
[Kotlin] 안드로이드를 위한 Kotlin 문법 Kotlin 사이트(https://play.kotlinlang.org/)에 접속하여 별도의 설치 없이 개발할 수 있음! Kotlin의 특징 ① Java와 100% 상호 호환되므로 Java 코드를 완전히 대체 가능 ② Java보다 문법이 간결함 ③ 프로그램의 안정성을 높여줌 ④ var 또는 val 예약어를 통해 데이터 형식을 선언하지 않고 변수를 선언할수 있음 Kotlin의 변수 선언 방식 2) var(variable) - 변수 • 일반 변수를 선언할 때 사용 • 필요할 때마다 계속 다른 값을 대입 가능 3) val(value) - 상수 • 변수 선언과 동시에 값을 대입하거나, 초기화 없이 선언한 후에 한 번만 값을 대입 가능 • 한 번 값을 대입하고 나면 값을 변경할 수 없음 Kotlin의 변수 선언 방.. 2021. 3. 22.