본문 바로가기

Kotlin80

코틀린 기본 문법 1 코틀린 기본 문법 //******************************* 변수 선언 var a: Int = 10 a = 20 println(a) //******************************* 상수 선언 val b: Int = 10 //b=20 //오류 //******************************* 함수 fun greet(str: String) { println(str) } greet(str = "안녕합니까?") //또는 fun greet2(str:String) = println(str) greet2( str="안녕합니까2") fun something() : String { return "hello" } //******************************* 기본자료.. 2022. 5. 24.
코클린 Companion object / object package com.monosoft.monopractice //Companion object class Book private constructor (val id : Int, val name : String) { //private constructor는 다른곳에서 객체를 생성못하게 함 companion object BookFactory : idProvider { override fun getId(): Int { return 333 } val myBooik = "name11" fun create() = Book(0, myBooik) } } interface idProvider { fun getId() : Int } fun main(){ //val book = Book.Companion.create() v.. 2020. 12. 31.
코틀린 POJO 데이터 클래스 package com.monosoft.monopractice //POJO : 어떤모델이되는 클래스, 비어있는 어떤 틀 클래스를 푸조라고 한다. data class Ticket(val companyName : String, val name : String, var date : String,var seatNumber : Int) //toString(), hashCode(), equals(), copy() class TicketNormal(val companyName : String, val name : String, var date : String,var seatNumber : Int) fun main(){ val ticketA = Ticket("koreanAir","kimwonho","2020-02-16".. 2020. 12. 31.
안드로이드이 문법강의2편 람다식 package com.monosoft.monopractice //1. Lamda // 람다식은 우리가 마치 value 처럼 다룰 수 있는 익명함수이다. // 1) 메소드의 파라미터로 넘겨줄수가 있다. fun maxby( a : int) // 2) return 값으로 사용할 수가 있다. // 람다의 기본정의 // val lamdaName : Type = {argumentList -> codeBody} //input int를 받아서 output int를 내보내서 number는 int로 타입을 추론해서 리턴을 해준다. val square : (Int) -> (Int) = {number -> number*number} val nameAge = {name : String, age :Int -> //리턴 "my n.. 2020. 12. 30.
안드로이드이 문법강의1편 package com.monosoft.monopractice fun main() { //helloWorld() //println(add(4,5)) //3.String Template //val name = "wonho" //val name1 = "kim" //println("안녕하세요 ${name+name1}요" ) //println("지금 달러는 \$aaaa ") /*주석 */ //주석 블럭지정 후 컨트롤 / 키 //forAndWhile() //nullcheck() ignoreNulls("kimwonho") } //1. 함수 fun helloWorld() : Unit { //Unit은 리턴이 없을경우 println("Hello world") } fun add(a:Int, b:Int) : Int { //.. 2020. 12. 23.
구글 지도 Open API로 지도에 표시 이번에는 구글 지도API와 서울시에서 제공하는 API를 활용해 도서관 위치 정보를 찍어보도록 하겠다! 우선 서울특별시 열린데이터광장에서 API 키를 발급 받아야된다! 다음과 같이 해보도록 하쟈! 메인 홈페이지 화면에서 [도서관위치정보] 를 검색하도록 하자! 리스트가 나열되고 그중에 [서울특별시 공공도서관현황정보] 를 클릭을 한다. 위와 같이 OpenAPI 탭을 클릭하고 인증키 신청을 클릭해준다~! 약관동의와 관련 내용을 입력한후 인증키신청을 눌러준다. api키가 발급되었습니다 라는 메세지와 함께 키값이 나올것이다! 인증키가 발급되면 위와 같이 나온다..... 하단에 미리보기 보면 샘풀url 을 복사해둔다! 일단 웹브라우저에 복사한 인증키를 붙여놓고 괄호안에 발급받은 인증키를 붙여넣고 실행해준다 그럼 관련.. 2020. 10. 26.
Android 구글 지도에서 내 위치 표시하기 Android 구글 지도에서 내 위치 표시하기 우선 구글 API를 등록하고 등록한 API 위에 입력을 해준다. GPS와 네트워크를 사용하기 위해 권한을 설정해준다 위와 같이 코딩해준다. 그리고 제일 중요한 build.gradle 에 로케이션을 추가해준다 버전체클 잘하고 수정한뒤 싱크 나우를 꼭 해준다!!! MapsActivity에 다음과 같이 코딩하고 파악하고 이해해 보쟈! package com.monosoft.mygooglemap import android.annotation.SuppressLint import android.content.pm.PackageManager.PERMISSION_GRANTED import android.location.Location import androidx.appcom.. 2020. 10. 21.
안드로이드 구글 API 맵 사용 안드로이드 구글 API 맵 사용 위와같이 안드로이드 프로젝트 생성전에 설정(configure을 선택후 SDK Manager 를 선택한다. 왼쪽 리스트중 Android SDK 선택 후 두번째 탭인 SDK Tool를 선택한 뒤에 목록중 [Android SDK Platfrom-Tools] 체크하고 Appy 또는 OK를 클릭한다. 그냥 사용하겠다라는 뜻이다.! 이제 새로운 템플릿을 선택을 위와 같이 Google Maps Activity를 선택해준다. google_maps.api.xml 에 가면 컨트롤+클릭 눌르면 구글사이트의 API console.developers.google.com/apis Google Cloud Platform 하나의 계정으로 모든 Google 서비스를 Google Cloud Platfor.. 2020. 10. 19.
안드로이드 포어그라운드 사용 포어그라운 : 다중 프로그래밍에서, 한 프로세스가 다른 프로세스보다 우선권을 가지고 실행하는 일. 새로운 서비스를 추가하고 Foreground라고 명칭을 하고 저장한다. 안드로이드에다가 사용허가를 구한다. xml에 위와 같이 적는다. 새로 추가한 Foreground에 위와 같은 코딩을 해준다. 메인 엑티비에다가도 코딩해준다. 화면으로 돌아가 메인 액티비티에 적은 함수를 연결시켜준다. 결과 영상 -------------실제 코딩 MainActivity.kt package com.monosoft.foregroundservice import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle.. 2020. 10. 15.
안드로이드 서비스 활용 안드로이드 서비스 package com.monosoft.androidservice import android.content.ComponentName import android.content.Context import android.content.Intent import android.content.ServiceConnection import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.os.IBinder import android.view.View class MainActivity : AppCompatActivity() { lateinit var serviceIntent:Intent //초기화 필요없고 나.. 2020. 10. 14.
Android AsyncTask의 구조와 제작 사항 package com.monosoft.asynctasksample import android.graphics.Bitmap import android.graphics.BitmapFactory import android.os.AsyncTask import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import kotlinx.android.synthetic.main.activity_main.* import java.lang.Exception import java.net.URL class MainActivity : AppCompatActivity() { override fun onCreate(s.. 2020. 10. 13.
Android 스레드와 루퍼 타이머 앱 만들기 Android 스레드와 루퍼 타이머 앱 만들기 위와 같이 화면을 우선 꾸며보쟈!! package com.monosoft.threadtimer import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.os.Handler import android.os.Message import kotlinx.android.synthetic.main.activity_main.* import kotlin.concurrent.thread class MainActivity : AppCompatActivity() { var started = false override fun onCreate(savedInstanceState: Bun.. 2020. 10. 12.
Android 카메라 사용 방법 - 갤러리 추가 Android 카메라 사용 방법 2탄 갤러리 추가 1탄 아래 보고오쟈! monoworld-1.tistory.com/72 Android 카메라 사용 방법 Android 카메라 사용 방법 우선 아래와 같이 화면을 꾸며준다. 이미지와 버튼을 올려놓고 적당한 id명과 text를 설정해준다 그리고 다음과 같이 코딩을 해주고 숙지한다. package com.monosoft.androidcamer monoworld-1.tistory.com ***************************추가 소스코드 1. 상수 //갤러리 열기 함수 val FLAG_REQ_GALLERY = 102 2.리스터 추가 buttonGallery.setOnClickListener { //카메라 권한 체크 Log.d("갤러리","ㅁ") if(i.. 2020. 10. 8.
Android 카메라 사용 방법 Android 카메라 사용 방법 우선 아래와 같이 화면을 꾸며준다. 이미지와 버튼을 올려놓고 적당한 id명과 text를 설정해준다 그리고 다음과 같이 코딩을 해주고 숙지한다. package com.monosoft.androidcamera import android.app.Activity import android.content.Context import android.content.Intent import android.content.pm.PackageManager import android.graphics.Bitmap import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.provider.MediaSt.. 2020. 10. 6.
ANDROID SQLite 데이터 베이스 사용 방법 2편 ANDROID SQLite 데이터 베이스 사용 방법 2편 아래와 같이 Paintext 와 버튼을 하나씩 추가후 적당히 조정 후 text와 레이아웃을 조정한다. 단. text는 꼭 values를 활용할것!!! 아래와 같이 RecycleView도 추가하고 레이아웃 조정과 ID 설정을 해준다. 아래와 같이 새로운 레이아웃을 추가후 이름을 item_recycler로 지정한다. 새로운 레이아웃에 아래와 같이 설정을 해준다. 메인 액티비티에 미리보기 설정 또 엑티비에 새로운 클래스를 추가한다 어탭터 클래스이다. 다음과 같이 코딩해준다. package com.monosoft.sqlitesample import android.view.LayoutInflater import android.view.View import .. 2020. 9. 29.
ANDROID SQLite 데이터 베이스 사용 방법 1편 위와 같이 새로운 클래스를 추가해준다 SQLite를 별로 관리하기 위해 효율적인 관리를 위해서.... ===============================소스============================== package com.monosoft.sqlitesample import android.content.ContentValues import android.content.Context import android.database.sqlite.SQLiteDatabase import android.database.sqlite.SQLiteOpenHelper data class Memo(var no :Long?, var content:String, var datetime:Long) class Sqlit.. 2020. 9. 28.
ANDROID SharedPreferences 사용 ANDROID SharedPreferences 사용 앱의 설정값을 저장할 용도로 많이 사용하는 것 package com.monosoft.sharedpreferencessample import android.content.Context import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log class MainActivity : AppCompatActivity() { val SP_NAME = "my_sp_storage" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setConten.. 2020. 9. 25.
ANDROID 코틀린 디버깅 ANDROID 코틀린 디버깅 아래 이미지와 같이 코드 창 왼쪽에 빨간 점이 표시된 공간을 클릭하면, 브레이크 포인트가 설정 됩니다. 다시한번 클릭하면 사라지게 되구요. 디버깅을 시작하기 위해서는 벌레 모양의 아이콘을 눌러주어야 하는데요. 안드로이드 스튜디오 최상단에서, 아래 이미지에서의 우측 끝에 있는 녹색 벌레 아이콘을 찾아서 클릭해주면 됩니다. 참고로 안드로이드 스튜디오는 아래 이미지의 우측 끝과 같이 벌레 아이콘과 우상향을 가르키는 방향 아이콘이 그려진 것을 고르면, 앱을 실행하는 중에도 바로 디버깅을 할 수 있는 기능을 제공합니다. 갑자기 문제가 생겼을 때 유용할 수 있겠지요. 디버깅을 시작하면 아래와 같은 디버그 창을 보게 되는데요. 혹시 디버그 창이 보이지 않는다면, 메뉴에서 View > To.. 2020. 9. 23.
ANDROID 파일 읽고 쓰기 ANDROID 파일 읽고 쓰기 읽기 함수 fun readTextFile(fullpath:String) : String { val file = File(fullpath) //무시 if(file.exists()) return "" //없으면 널 처리 val reader = FileReader(file) val buffer = BufferedReader(reader) var temp:String? = "" var result = StringBuffer() while(true) { temp = buffer.readLine() //줄단위로 읽어서 임시 저장 if(temp == null) break else result.append(temp).append("\n") //또는 temp+"/n" } buffer.clo.. 2020. 9. 22.
ANDROID 권한처리 ANDROID 권한처리 신규 프로젝트를 추가후 아래와 같은 AndroidMainfest.xml 연 후에 사용할 권한을 입력한다. 이번에는 카메라다!! 디자인 모드에 들어가 아래와 같이 위젯을 꾸며준다. ************************아래 코드를 참고해서 코딩해준다******************************************* package com.monosoft.myapplication import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat import android.Manifest import android.content.pm.. 2020. 9. 21.