목록프로그래밍/안드로이드, 코틀린 (35)
몰?.루();
코틀린에는 배열에 쓸 수 있는 여러가지 컬렉션 관련 함수들이 있는데 그 중에서 가장 유용한 게 filter와 map이 아닐까 싶습니다. List, MutableList, 일반적인 Array, ArrayList 등 다양한 컬렉션에서 쓸 수 있습니다. filter 사용법 fun main() { val arr = listOf(1, 2, 3, 4, 5, 6, 7, 8) val arr2 = arr.filter { it % 2 == 0 } // arr에서 짝수인 애들만 남겨서 arr2에 저장 println(arr) // [1, 2, 3, 4, 5, 6, 7, 8] println(arr2) // [2, 4, 6, 8] } filter는 이름대로 특정 원소만 필터링해서 return하는 역할입니다. 원래 변수엔 영향을 ..
이런 게 AlertDialog입니다. 흔히 '대화상자'라고 많이 표현합니다. Dialog 아래에 AlertDialog를 포함하여 DatePickerDialog, TimePickerDialog 같은 게 있습니다. AlertDialog는 위의 사진처럼 단순한 대화상자를 띄우기에 좋은 클래스입니다. DatePickerDialog는 날짜를 지정해야하는 대화상자를 띄우기에 좋고 TimePickerDialog는 시간을 지정해야하는 대화상자에 띄우기 좋다. 알람앱 그런 곳에서 많이 쓸 거 같습니다. Dialog는 가장 최상위의 클래스이지만 구글 문서에 따르면 Dialog를 직접 인스턴스화 하는 것은 하지말라고 합니다. AlertDialog를 쓰거나, 자신의 커스텀 다이얼로그를 만들 때만 Dialog를 상속해서 쓰라고..
자바8 이전의 옛날 문법이 익숙하다보니 코틀린은 물론이고 최근의 자바 문법들도 익숙하지 않습니다. 그 중에서 특히 적응 안 되는 게 람다라서 정리해보기로 했습니다. 특히 많이 쓰이는 setOnClickListener를 통해서 람다와 SAM(Single Abstract Method)에 대해 정리해보겠습니다. // 코틀린에서 가장 흔하게 볼 수 있는 코드 val myButton = Button(this) myButton.setOnClickListener { println(it.id) // 버튼이 눌리면 버튼 자신의 id를 출력 } 버튼을 하나 선언하고 그 버튼을 누르면 버튼 자신의 id를 출력하는 아주 간단한 코드입니다. 아주 간단하지만 제 입장에서는 너무 간단해서 오히려 이해할 수가 없었습니다. 제가 익숙..
만들고 있는 어플에서 화면을 끄는 기능을 넣어보려고 했다. 당연히 메소드하나로 굉장히 쉽게 구현이 가능할 것이라 생각했고 실제로 구글에서 Android screen off 같은 검색어로 검색하면 굉장히 간단해보이는 코드가 검색된다. PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "tag"); wl.acquire(); wl.release(); 가장 유명한 Screen off 코드.그런데 이게 어찌된 것인지 모르겠지만 내 휴대폰은 저 코드가 먹히지 않았다. 솔직히 아직까지도 이유를 알 수가 없..
매우 짧은 코드이지만 자주 까먹어서... Intent intent = new Intent(MainActivity.this, 클래스이름.class); startActivity(intent); intent 변수 선언을 뺀다면야 한 줄만에 되는 짧은 코드이다.만약 해당 클래스를 찾을 수 없다는 오류가 발생하면서 어플리케이션이 강제 종료된다면 클래스 이름에 오타는 없는지 먼저 확인하고 오타가 없다면 Manifast.xml에 액티비티가 등록되어있는지 확인해야 한다. 액티비티는 무조건 Manifast.xml에 등록되어 있어야한다.