Android
Kotlin - 갤러리에서 사진, 파일 이름 가져오기
Kotlin - 갤러리에서 사진, 파일 이름 가져오기
2022.07.28val galleryIntent = Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI) galleryIntent.type = "image/*" val requestGallery: ActivityResultLauncher = registerForActivityResult( ActivityResultContracts.StartActivityForResult() ) { if (it.data?.data == null) { Toast.makeText(baseContext, "data was null.", Toast.LENGTH_SHORT).show() return@registerForActivityResult } val cursor =..
Kotlin - Gson Date 날짜 타입 파싱 간단 방법
Kotlin - Gson Date 날짜 타입 파싱 간단 방법
2022.07.09API로 Json으로된 데이터를 받다보면, 아래와 같은 형식으로 데이터가 오는 경우가 자주 있다. C# Netwonsoft Json은 별다르게 명시를 하지 않아도 DateTime으로 잘 변환해주는데 이놈의 Gson은 뭐 하나하나 해야할게 많다. { "date": "2022-07-10T10:27:47", }, { "date": "2022-07-11T10:27:47.242+09:00", } 맨 위처럼 yyyy-MM-ddTHH:mm:ss 처럼 오는 형식은 아래처럼 처리하면 된다. 'T'는 단순 문자열이기 때문에 감싸야 작은따옴표로 감싸야한다. 이렇게 하면 ParseClass를 따로 만들지 않고 처리할수 있어 가볍게 쓰기 편함. val gson: Gson = Gson().newBuilder().setDateFo..
Kotlin - Gson 제네릭을 사용하여 파싱할때 CastException이 발생하는 문제
Kotlin - Gson 제네릭을 사용하여 파싱할때 CastException이 발생하는 문제
2022.07.06Json으로 되어있는 데이터를 객체로 변환해서 써야하는데, fromJson을 사용하면 항상 변환할 객체 타입을 넣어줘야 한다. 매번 이 타입을 입력하는건 매우 귀찮은 일이 아닐수 없으므로, 제네릭을 사용하여 범용성을 높이기로 했다. 그런데, 왜인지 타입 변환이 안되고 LinkedTreeMap으로만 변환되었기 때문에, 실제로 객체로 접근하게 되면, 무수히 많은 CastException의 요청을 받을수 있다. inline fun deserialize(json: String): T { return Gson().fromJson(json, object : TypeToken() {}.type) } 위와 같이 작성하여 해결할 수 있다. Kotlin에서는 Generic을 사용하는 경우에 inline 으로 작성하지 않으..