프로그래밍

코린이 이런 경우 어떻게 해결 함?

코틀린 공부를 위해 기본기 다 떼지도 않았는데 공부차 개발 시작했다가 설계가 개판이 되버렸다..

History.kt에 RecyclerView가 있고 이를 DB에 연결해주기 위해 Room을 사용하여 HistoryAdapter랑 연결했다.

 

RecyclerView 리스트에 각 row당 버튼이 하나 있는데 이 버튼 리스너 처리를 HistoryAdapter에서 해줄 수 있던데

문제는 해줘야 하는 기능이 Popup Dialog 띄워주고, DB에 저장하기 위해 쓰레드도 만들어줘야 하고 뭔가 스케일이 점점 커지니

HistoryAdapter에서 할게 아니라 History에서 작업을 해줘야 겠다는 생각이 들기 시작함

 

그런데 안드로이드도 코틀린도 처음이라 HistoryAdapter -> History 메서드를 어떻게 실행해줘야 할 지 모르겠다..

그냥 Delegate 해줘도 되겠지만 안 그래도 꼬인 설계가 더 꼬일꺼 같고... 보통 어떻게 처리함?

 

 

 

240205.png

요약)

1. 위 이미지 처럼 각 row당 선택 버튼이 있고, 버튼 리스너는 HistoryAdapter에 있음

2. 하지만 리스너에서 처리하는걸 History에서 해주고 싶음

3. 설계가 개판인게 근본적인 문제지만.. 일단 이럴 때 그냥 델리게이트 써도 괜찮나?

3개의 댓글

2024.02.06

일반적인 방법은 Adapter 생성자로 버튼 리스너나 콜백을 넘겨받는거지

0
2024.02.06
@힝거루

아... C# 할 때는 걍 델리게이트로 등록해서 썻는데 코틀린에서는 리스너나 콜백을 줘서 할 수 있구나

개편하네 ㅋㅋㅋ

0
2024.02.06

mvvm 구조가 아니라면

윗댓 말대로 어댑터 생성시에 함수 넘기면됨

 

걍 댓글코딩이니.. 컴파일에러는 몰?루

 

class History {

val adapter = Adapter(::function)

 

fun function() {

 

}

}

 

class Adapter(val onClick: ()-> Unit) {

 

}

0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
5708 [프로그래밍] 클라가 파이썬 셀레니움같은거 써서 클릭하고 그러는걸 감지 ... 5 리옴므 0 12 시간 전 126
5707 [프로그래밍] leetcode 50일 달성 JimmyMcGill 0 13 시간 전 115
5706 [프로그래밍] 그냥 개인공부용 git 만들건데 4 년째재수강 0 16 시간 전 197
5705 [프로그래밍] html 자바스크립트 질문 19 책걸이 0 1 일 전 266
5704 [프로그래밍] 아니 시바 이게 무슨일이야 4 인간지표 0 2 일 전 287
5703 [프로그래밍] 아두이노 키트 아무것도 모르고 사도 될까? 6 그것 0 2 일 전 244
5702 [프로그래밍] 횽들 Vimeo에 올라가있는 동영상의 원본크기를 확인할 수 있... 13 카뜨만두 0 2 일 전 174
5701 [프로그래밍] c# 이벤트와 델리게이트 13 RX7900XTX 0 5 일 전 294
5700 [프로그래밍] Aws 람다에 파이썬 올려서 결과 받아오는데 11 아르피쥐 0 6 일 전 340
5699 [프로그래밍] 마리아DB mediumtext 그냥 쓰고 싶은데 21 잉텔 0 7 일 전 218
5698 [프로그래밍] 안드로이드 씹뉴비 질문이요 2 집에가게해줘 0 7 일 전 123
5697 [프로그래밍] c언어 7년했는데 이런게 되는거 처음알았음.. 4 케로로중사 0 8 일 전 879
5696 [프로그래밍] 파이썬 1도 모르는데 GPT로 프로그램 뚝딱 만듬 2 푸르딩딩 1 12 일 전 736
5695 [프로그래밍] 담주 면접잡혔는데 8 삐라루꾸 0 12 일 전 498
5694 [프로그래밍] 아두이노 부트로더를 구웠는데.. 4 렙이말한다ㅡ니가옳다 0 12 일 전 232
5693 [프로그래밍] IOS 개발자 있나여? 1 g4eng 0 15 일 전 256
5692 [프로그래밍] 시스템 디자인 인터뷰 준비 도움좀!!! 1 Nognhyup 0 15 일 전 200
5691 [프로그래밍] 최근에 vscode 쓴 사람 도움! 3 172102 0 16 일 전 521
5690 [프로그래밍] 책을 또 사버리고 말았다... 1 찰나생멸 2 17 일 전 521
5689 [프로그래밍] 윈도우 부팅화면 봐주실분 1 바나나맛두부 0 19 일 전 236