kotlin 9

[android] Kotlin ArrayList SharedPreferences json data (feat. Gson)

▣ Model data class Person(val name: String, val age: Int) ▣ Read val preferences = getSharedPreferences("pref", Context.MODE_PRIVATE) val jsonData = preferences.getString("person", "") val gson = Gson() val token: TypeToken = object : TypeToken(){} val list: MutableList? = gson.fromJson(jsonData, token.type) ▣ Write val preferences = getSharedPreferences("pref", Context.MODE_PRIVATE) val jsonDat..

[kotlin] for문 다양한 사용법

코틀린 문법은 전체적으로 직관적이다. 하지만 c 나 c++, java와 같은 과거의 코드 방식에 적응되어 있는 경우 종종 헷갈린다. 어렵지 않으니 정리나 좀 해보자. 1. for문 0 ~ 9까지 (1씩 증가) // java for(int i = 0; i < 10; i++) { } // kotlin for(i in 0 until 10) { } 2. for문 0 ~ 10까지 (1씩 증가) // java for(int i = 0; i = 0; i -= 2) { } // kotlin for(i in 10 downTo step(2)) { } 6. array 배열 (Foreach) // java int array[] = {0, 1, 2, 3, 4}; for(int data : array) { } // kotlin ..

[kotlin] 커스텀 리스너(Custom Listener)를 람다(Lamda) 형식으로 사용하기

[java에서의 사용방법] java에서는 콜백 즉, 어떠한 이벤트를 받아 오기 위해 리스너를 사용하는데 형태는 아래와 같다. 1. DataChangeListener 라는 커스텀 리스너 interface 생성 (MyCustomView.java) public class MyCustomView extends View { DataChangeListener dataChangeListener; interface DataChangeListener { void onChanged(int index, String value); } public MyCustomView(Context context) { super(context); } public void setOnDataChangeListener(DataChangeListe..

[kotlin] 특정 날짜가 속해있는 달에서 '특정 날짜와 같은 요일'의 날짜 구하기

특정 날짜가 속해있는 달에서 '특정 날짜와 같은 요일'의 날짜를 구하기 위한 함수이다. /** * 특정 날짜가 속해있는 달에서 특정 날짜와 같은 요일의 날짜 구하기 * @param eventDate ex) 2020-10-10 * */ fun day(eventDate: String){ val dateArray = eventDate.split("-").toTypedArray() val cal = Calendar.getInstance() cal[dateArray[0].toInt(), dateArray[1].toInt() - 1] = dateArray[2].toInt() // 요일 확인(일요일:1, 월요일:2, ... ,토요일:7) var dayOfWeek = cal.get(Calendar.DAY_OF_WEEK..

[kotlin] 특정 날짜가 속해있는 1주일간의 날짜 범위

특정 날짜가 속해있는 1주일간의 날짜 범위를 알아내기 위한 함수이다. /** * 특정 날짜의 같은 한 주간의 날짜 범위 * @param eventDate ex) 2020-10-10 * */ fun week(eventDate: String) { val dateArray = eventDate.split("-").toTypedArray() val cal = Calendar.getInstance() cal[dateArray[0].toInt(), dateArray[1].toInt() - 1] = dateArray[2].toInt() // 일주일의 첫날을 일요일로 지정한다 cal.firstDayOfWeek = Calendar.SUNDAY // 시작일과 특정날짜의 차이를 구한다 val dayOfWeek = cal[C..

[kotlin] 코틀린 null 처리 (.let)

예전에 C 또는 Java로 프로그래밍을 할때, NULL 처리를 하기 위해서 if문으로 감싸거나 try catch 구문을 이용하여 NullPointerException에 대한 방어처리를 했다. 하지만 kotlin 구문 중 .let을 이용하면 조금 편하게 코드를 구현 할 수가 있다. var testStr: String? = null testStr = "null 체크" // 과거 코드 방식 if(testStr != null) { var len = testStr.length() } // 코틀린 null 처리 방법 testStr?.let{ it: String var len = it.length() }

[kotlin] 안드로이드 코틀린 두 날짜 차이 계산

'현재 지금 시각'을 기준으로 날짜 차이를 계산하는 방법이다. 예를 들어 지금 시각 today값이 2020-06-16 13:11:10 일때, 1. sampleDate값이 2020-06-14 10:12:14 라면 "2일 차이남!!" 2. sampleDate값이 2020-06-14 15:12:14 라면 "1일 차이남!!" var sampleDate = "2020-06-14 10:12:14" var sf = SimpleDateFormat("yyyy-MM-dd HH:mm:ss") var date = sf.parse(sampleDate) var today = Calendar.getInstance() var calcuDate = (today.time.time - date.time) / (60 * 60 * 24 * ..