전체 글

안드로이드/안드로이드

[Android/Kotlin] 리사이클러뷰(RecyclerView) 스와이프 이벤트

안드로이드의 리사이클러뷰에서 스와이프 이벤트를 하는 방법 중 ItemTouchHelper.callback()을 이용할 수 있습니다. 리사이클러뷰에서 스와이프나 드래그등 동작을지원해 해당 동작들을 허용하거나 막을 수 있으며 해당 동작을 했을 때 어떤 이벤트를 발생시킬 것인지 관리할 수 있습니다. 사용법 //적용 //.... userListItemHelper.attachToRecyclerView(recyclerView)//리사이클러뷰와 연결 연결 //구현 class UserListItemHelper(private val requsetPermission:(pos:Int)->(Unit)) : ItemTouchHelper.Callback() { companion object{ private const val TA..

안드로이드/안드로이드

[Android/Kotlin] attachToParent

뷰바인딩에서는 inflate 함수가 2가지 오버로드된 버전으로 제공됩니다. 이 두 가지 버전의 차이는 attachToParent 매개변수의 유무입니다. 다음은 두 가지 버전의 inflate 함수의 예시 코드입니다. //attachToParent 사용 하지 않음 val binding = ActivityMainBinding.inflate(layoutInflater) //attachToParent 사용 val binding = ActivityMainBinding.inflate(layoutInflater, parent, attachToParent = false) 리사이클러뷰에서는 binding을 이용해 뷰홀더를 만드는 과정에서는 해당작업을 할 때는 아래와 같은 inflate 함수를 사용해야 합니다. 만약 그렇지..

안드로이드/안드로이드

[Android/Kotlin] 프래그먼트안 프래그먼트에서 뒤로가기

오늘은 프래그먼트 안에 프래그먼트를 두고 onBackPressed 이벤트가 일어날 때 이전의 프래그먼트로 가게 동작시키고 싶었습니다. 그러기 위해서는 먼저 프래그먼트 안에서 프래그먼트를 바꿔줄 필요가 있었습니다 val fragment1 = Fragment1().getInstance() supportFragmentManager.beginTransaction().replace(R.id.container, fragment1).commit() 기존액티비티에서는 위처럼 supportFragmentManager를 이용하여 프래그먼트를 쉽게 바꿔 줄 수 있었지만 프래그먼트에는 supportFragmentManager가 없기에 다른 매니저를 가져와야 했습니다. /** * Return a private FragmentM..

안드로이드/안드로이드

[Android/Kotlin] 알림(Notification) - 1, NotificationChannel 속성

이전에 알림의 채널에 관련돼서 포스팅을 했지만 알림에 관해서는 정리를 안 한 것 같아 알림 기능을 정리해 볼까 합니다. 알림은 이러한 구조로 구성됩니다. NotificationManager : 알림을 시스템에 발생시키는 SystemService Notification : 알림 구성 정보를 가지는 객체 NotificationCompat.Builder : 알림을 다양한 정보로 생성 NotificationChannel : 알림의 관리 단위(Android Oreo에서 추가) 이제 위 구조들을 이용하여 알림을 생성시켜 봅시다. 1. 처음에는 NotificationManager를 안드로이드에서 받아 와야 합니다. val manager = getSystemService(NOTIFICATION_SERVICE) as N..

코틀린/프로그래머스

[프로그래머스] - 정수를 나선형으로 배치하기(Kotlin)

https://school.programmers.co.kr/learn/courses/30/lessons/181832 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 양의 정수 n이 매개변수로 주어집니다. n × n 배열에 1부터 n2 까지 정수를 인덱스 [0][0]부터 시계방향 나선형으로 배치한 이차원 배열을 return 하는 solution 함수를 작성해 주세요. 제한사항 1 ≤ n ≤ 30 입출력 예 n result 4 [[1, 2, 3, 4], [12, 13, 14, 5], [11, 16, 15, 6], [10, 9, 8, 7]] 5 [[1, 2..

안드로이드/안드로이드

[Android/Kotlin] 리사이클러뷰(RecyclerView) 스크롤 이벤트

리사이클러뷰에서는 기존에 스크롤 이벤트를 관리할 때 setOnScrollListener를 이용해서 OnScrollListener객체를 집어넣어서 해당 로직을 구현하였습니다. package androidx.recyclerview.widget; //Set a listener that will be notified of any changes in scroll state or position //스크롤 상태나 위치의 변경 사항에 대해 알림을 받을 리스너를 설정합니다. @Deprecated public void setOnScrollListener(@Nullable OnScrollListener listener) { mScrollListener = listener; } 그러나 이방식은 스크롤 동작에 따라 여러 개의..

안드로이드/안드로이드

[Android/Kotlin] 알림(Notification)아이디 채널아이디

오늘은 알림(Notificatio)을 알아볼까 합니다 알림은 사용자에게 미리 알림을 주고 다른 사람과의 소통을 가능하게 하며 앱에서 보내는 기타 정보를 적시에 제공하기 위해 Android가 앱의 UI 외부에 표시하는 메시지입니다. 사용자는 알림을 탭 하여 앱을 열거나 알림에서 바로 특정 작업을 실행할 수 있습니다. 공식 안드로이드 docs를 보면 알림을 이렇게 설명하고 있습니다. 알림은 여러 방식으로 사용자에게 여러 정보들을 표시하거나 동작(event)들을 수행할 수 있게 해 줍니다. 기존에 안드로이드에서는 알림 채널을 따로 만들어 줄 필요 없이 알림을 구현할 수 있었지만 안드로이드 API26 오레오 버전부터는 따로 Notification Channel을 추가를 해줘야 합니다. 이처럼 Notificati..

코틀린/프로그래머스

[프로그래머스] - 의상(Kotlin)

https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 코니는 매일 다른 옷을 조합하여 입는 것을 좋아합니다. 예를 들어 코니가 가진 옷이 아래와 같고, 오늘 코니가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류 이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 코니는 각 종류별로 최대 1가지 의상만 착용할 수 ..

CS 지식

[알고리즘] Dynamic Programming

개요 최적화 이론의 한 기술이며, 특정 범위까지의 값을 구하기 위해서 그것과 다른 범위까지의 값을 이용하여 효율적으로 값을 구하는 알고리즘 설계 기법입니다. 즉 작은 문제를 해결한 후, 해결한 작은 문제의 해답을 활용하여 주어진 문제들을 풀어 최적화하여 풀면 설명 주어진 문제를 풀기 위해서, 문제를 여러 개의 하위 문제(subproblem)로 나누어 푼 다음, 그것을 결합하여 최종적인 목적에 도달하는 것입니다. 각 하위 문제의 해결을 계산한 뒤, 그 해결책을 저장하여 후에 같은 하위 문제가 나왔을 경우 그것을 간단하게 해결할 수 있습니다. 이러한 방법으로 동적 계획법은 계산 횟수를 줄일 수 있습니다. 특히 이 방법은 하위 문제의 수가 기하급수적으로 증가할 때 유용합니다. Dynamic Programmin..

코틀린/프로그래머스

[프로그래머스] - 가장 가까운 같은 글자(Kotlin)

https://school.programmers.co.kr/learn/courses/30/lessons/142086 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 문자열 s가 주어졌을 때, s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자가 어디 있는지 알고 싶습니다. 예를 들어, s="banana"라고 할 때, 각 글자들을 왼쪽부터 오른쪽으로 읽어 나가면서 다음과 같이 진행할 수 있습니다. b는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다. a는 처음 나왔기 때문에 자신의 앞에 ..

감자씨앗
코딩과 게임