본문 바로가기

Android/Android 핵심기술38

[Android/Kotlin] 뒤로가기 버튼 클릭이벤트 구현 - OnBackPressedCallback() 사용 이전에는 onBackPressed() 메소드를 사용하여 뒤로 가기 버튼이 눌렸을 때의 동작을 정의했지만,최신 버전(targetSdk 33 : 안드로이드 13 이후)의 안드로이드에서는 onBackPressed()가 deprecated 되었다고 한다 대신에 OnBackPressedCallback 사용하여 뒤로 가기 버튼 동작을 정의할 수 있다. OnBackPressedCallback은 OnBackPressedDispatcher를 통해 등록되고, 뒤로 가기 버튼을 누를 때마다 실행된다.addCallback 메소드는 OnBackPressedDispatcher 에 새로운 OnBackPressedCallback 을 등록하고,이렇게 등록된 콜백은 handleOnBackPressed 메소드에서 정의된 작업을 수행한다... 2024. 4. 12.
[Android/Kotlin] 천단위로 콤마 표시하기 (DecimalFormat) 1) 숫자 천단위 콤마DecimalFormat을 사용해서 #,###으로 3자리마다 콤마가 찍히도록 설정해주었다format 괄호 안에는 적용시킬 데이터를 넣어주면된다DecimalFormat("#,###").format(123456)// 123,456 2) 숫자 천단위 콤마, 소숫점 00으로 고정DecimalFormat("#,###.00").format(123456)// 123,456.00 3) 숫자 천단위 콤마, 소숫점 두자리까지만 표시DecimalFormat("#,###.##").format(123456.1234)// 123,456.12 # 참고자료https://skogkatt.tistory.com/entry/Kotlin-%EC%BD%94%ED%8B%80%EB%A6%B0-D.. 2024. 4. 12.
[Android/Kotlin] ImageView scaleType 속성 # scaleType = "Center"이미지의 크기와 비율을 유지하며 이미지의 중앙을 ImageView의 중심에 맞춤 # scaleType = "centerCrop"이미지의 비율을 유지하며 가로, 세로 중 짧은 쪽을 ImageView에 꽉차게 출력 # scaleType = "centerInside"이미지의 가로, 세로 중 긴쪽을 imageView의 레이아웃에 맞춰 출력한다.이미지의 비율을 유지하되며 남은 공간은 background 색으로 채워진다.fitCenter와 달리 이미지가 ImageView보다 작을 경우 크기가 유지됨 # scaleType = "fitCenter"이미지의 크기가 ImageView보다 작다면 ImageView의 크기에 따라 달라짐 # scaleType = "fitXY".. 2024. 4. 12.
[Android / Kotlin] Intent로 Class 값 넘기기 (Serializable, Parcelable, Parcelize) 일반적으로 intent를 사용해서 넘겨주면 데이터를 하나하나씩 넘겨줘야되기때문에 코드가 길어지고 효율성도 안좋다 그래서 보통 데이터를 클래스형태로 만들어서, 그 클래스를 한방에 넘겨주는 직렬화 방식을 사용한다!코틀린에서 직렬화를 통해 값을 전달하는 방법은 Serializable, Parcelable, Parcelize 이렇게 3가지가 있다 # Serializabledata class Product( val id : Int, @DrawableRes val image : Int, val name : String, val area : String, val price : Int, val comment : Int.. 2024. 4. 12.
[Android/Kotlin] Fragment간 데이터통신(데이터전달) Fragment간 데이터 전달하는 방법에 대한 기본적인 개념과 간단한 예제는 아래 블로그에다가 정리를 해뒀었다https://coding-juuwon2.tistory.com/256 [Android] Fragment간 데이터통신 방식1. FragmentManager에 Bundle로 Data를 담아 전달 //PassBundleFragment는 본인이 전달하고자 하는 Fragment class val bundle = Bundle() bundle.putString("key", "value") val passBundleBFragment = PassBundleBFragment() passBundleBFragment.argumencoding-juuwon2.tistory.com 이번에는 예제를 통해 직접 코드를 짜보.. 2024. 4. 12.
[Android / Kotlin] Recyclerview에 구분선 표시 리사이클러뷰에 구분선을 표시하고싶다면 아래와같이 DividerItemDecoration을 사용해서 작성해주면된다// 리사이클러뷰 구분선 표시with(binding.RecyclerView){ val decoration = DividerItemDecoration( context, LinearLayoutManager(this@MainActivity).orientation ) addItemDecoration(decoration)} 리사이클러뷰 아이템마다 구분선이 잘 표시되고 마지막 아이템에는 구분선이 표시가 안되는것을 확인할 수 있다 # 참고자료https://odomm.tistory.com/entry/Kotlin-%EC%95%88%EB%93%9C%EB%A.. 2024. 4. 11.