Android/Kotlin
-
[Android/Kotlin] SharedPreference에 ArrayList 저장하기Android/Kotlin 2022. 7. 31. 15:09
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - 처음에는 최근 검색어 리스트를 저장하기 위해 Room을 사용하려 했지만 ArrayList와 같이 간단한 데이터를 저장하는데 대용량 데이터 저장에 주로 사용되는 Room을 굳이 사용 할 필요가 있겠나라는 생각이 들어 사용하게 됨 fun Add_RecentlySearchTerms(context: Context, terms: String) { val sharedPreferences = context.getSharedPreferences("terms", Context.MODE_PRIVATE)//해당 앱 내부에서만 접근 가능 val editor: SharedPreferences.Editor = sharedPreferences.edit() val value ..
-
[Android/Kotlin] AlertDialog 커스텀Android/Kotlin 2022. 7. 19. 17:53
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] val dialogView = layoutInflater.inflate(R.layout.timepicker, null) val timePicker = dialogView.findViewById(R.id.timePicker) val builder = AlertDialog.Builder(this) builder .setView(dialogView) .setPositiveButton("확인", DialogInterface.OnClickListener { dialogInterface, i -> if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { time_editText.setText(""+timePicker.hou..
-
[Android/Kotlin] 데이터 바인딩(DataBinding)Android/Kotlin 2022. 7. 15. 15:16
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - Android JetPack 라이브러리 중 하나 - xml에 데이터 연결하는 작업 - findViewById() 사용하지 않아도 됨 - 자동으로 xml에서 만든 View들을 만들어 줌 - MVVM 패턴, LiveData와 함께 사용(필수인 것은x) - Observable 사용해 실시간으로 데이터 변경 가능 - RecyclerView 내부 아이템을 set하지 않아도 xml에서 자동으로 처리 - 간결한 코드 작성 가능 - gradle app 수준 apply plugin: 'kotlin-kapt' android { dataBinding{ enabled = true } } dependencies { kapt 'com.android.databinding:c..
-
[Android/Kotlin] ViewModel, LiveData, 화면 회전 처리Android/Kotlin 2022. 7. 11. 20:10
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - 화면이 회전되는 경우 LifeCycle에 의해 Activity가 파괴되었다가 재생성됨 - LifeCycle에 상관 없이 UI 관련 데이터 저장하고 관리 - 액티비티, 프래그먼트와는 다른 생명주기 가짐 - 앱이 생성(onCreate()) 된 후 종료(onDestroy) 되기 전까지 ViewModel Scope는 남아 있음 - onDestroy() 될 때 ViewModel의 onCleared() 호출 됨 - ViewModel을 사용하는 경우 Activity는 데이터 관리하지 않고 ViewModel이 데이터를 관리함 - saveInstanceState 통해 ViewModel의 역할 대체가 가능하지만 아래와 같은 단점이 있음 - 1. 저장 가능한 데이터 ..
-
[Android/Kotlin] 권한(Permission)Android/Kotlin 2022. 7. 10. 14:36
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - 일반 권한 - Manifest에 등록해서 사용할 수 있음 - ex) 인터넷 사용 권한 - 위험 권한 - 사용자에게 허락 받아야 함 - Manifest에 등록하려는 경우 오류 발생 - ex) 카메라, 연락처 - 설치하자마자 필요한 권한 묻는 경우 - 얻어야 할 권한 많아지는 경우 설치하자마자 물으면 사용자에게 부담이 될 수 있음 - 특정 기능 사용하려고 하는 경우 묻는 경우(권장) val cameraPermissionCheck = ContextCompat.checkSelfPermission(this@PermissionActivity, android.Manifest.permission.CAMERA) if(cameraPermissionCheck != P..