본문 바로가기

프로그래밍/Kotlin51

[Kotlin] Java -> Kotlin Converting후 CustomDialog를 열때 Nullpointer Exception Java로 만든 프로젝트를 Kotlin으로 컨버팅 후 테스트 하던중 커스텀 다이얼로그를 호출하니 앱이 죽어버렸습니다. java.lang.NullPointerException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkNotNullParameter, parameter savedInstanceState 처음보는 에러라 구글링을 해보니 nullCheck 설정이 붙은 파라메터로 바꾸라는군요. public override fun onCreate(savedInstanceState: Bundle) 저는 커스텀 다이얼로그 소스에서 이 부분을 public override fun onCreate(savedInsta.. 2022. 12. 5.
[Kotlin] 가변인자를 변수로 넘기기 (변수명앞에 별표[*]) 필자는 코틀린에서 이런저런 코드를 보다가 변수명 앞에 *가 있는걸 보고 처음엔 포인터인줄 알았다. 근데 코틀린에는 포인터가 없는걸로 알고있는데 이상해서 더 찾아보니까 가변인자를 변수로 넘기는거였더라.. 좋게 정리된 포스팅이 있어 가져왔다. 가변인자는 개수가 정해지지 않은 인자를 말합니다. 예를 들어, 아래 코드는 인자가 1개로 고정되어있습니다. 그렇기 때문에 인자를 2개로 늘리려면 코드를 변경해야 합니다. fun printString(string : String): Unit { println(string) } fun main() { printString("Hello World!") // printString("Hello World!", "Variable arguments") => compile error.. 2022. 11. 10.
[Android] XMl파일을 만들지 않고 Dialog에 ProgressBar 띄우는 코드 private var dialog: Dialog? = null val linearLayout = LinearLayout(context) linearLayout.gravity = Gravity.CENTER linearLayout.setBackgroundColor(Color.TRANSPARENT) val progressBar = ProgressBar(context) linearLayout.addView( progressBar, ViewGroup.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT ) ) dialog = Dialog(context) dialog?.requestWindowFeature(Wind.. 2022. 9. 5.
[Android] 클릭리스너를 변수로 등록하여 사용하는법 코틀린 코드 private fun setListener() { binding.test1.setOnClickListener(mOnEraseClickListener) binding.test2.setOnClickListener(mOnEraseClickListener) binding.test3.setOnClickListener(mOnEraseClickListener) } private val mOnEraseClickListener = object : View.OnClickListener{ override fun onClick(v: View?) { when(v?.id){ R.id.test1->{ // TODO() } R.id.test2->{ // TODO() } R.id.test3->{ // TODO() } } .. 2022. 8. 31.