[Android/Kotlin] 함수 패키지 수준 정의/싱글톤 객체로 정의

기존 위치

  • 기존엔 Adaptor내에서 선언해두고 Adaptor내에서만 사용
class RecyclerViewAdaptor(private val productList: MutableList<Product>) :
    RecyclerView.Adapter<RecyclerViewAdaptor.Holder>() {
    ...
		private fun formatPrice(price: Int): String { // 천 단위로 콤마(,) 찍어 표시해주는 함수
    		val formatter = NumberFormat.getNumberInstance(Locale.getDefault())
    		return formatter.format(price)
		}
		...
}
  • 기존엔 Adaptor내에서만 사용했지만 다른Activity에서 사용하기 위해 공통적으로 사용할 수 있는 장소에 정의

1. 패키지 수준 함수로 정의

// CommonUtils.kt 파일에 정의
import java.text.NumberFormat
import java.util.*

fun formatPrice(price: Int): String {
    val formatter = NumberFormat.getNumberInstance(Locale.getDefault())
    return formatter.format(price)
}
  • Adapter 또는 Activity에서 사용
val formattedPrice = formatPrice(productList[position].price)

2. 싱글턴 객체로 정의

// CommonUtils.kt 파일에 정의
import java.text.NumberFormat
import java.util.*

object CommonUtils {
    fun formatPrice(price: Int): String {
        val formatter = NumberFormat.getNumberInstance(Locale.getDefault())
        return formatter.format(price)
    }
}
  • Adapter 또는 Activity에서 사용
val formattedPrice = CommonUtils.formatPrice(productList[position].price)

© 2023. All rights reserved.

by SoftyChoo