프로그래밍

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

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

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
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
181216 [잡담] 다들 알리특가 글카 사고 스스디 사고 씨퓨 사지? 장난없는사람 0 1 시간 전 57
181215 [컴퓨터] 알리특가 글카 샀음 3 광어우럭따 0 2 시간 전 142
181214 [컴퓨터] 파워 추천좀해주세요 4 은평구청년 0 3 시간 전 44
181213 [잡담] 멀티탭추천점 2 전업주부하고싶다 0 5 시간 전 107
181212 [잡담] 무한재부팅된다건 개붕이입니다..... 1 아이톨쥬 0 5 시간 전 66
181211 [잡담] 의자 추천좀(t50빼고) 3 섭탱 0 5 시간 전 85
181210 [잡담] 게임패드 고쳤다! 2 오브 1 6 시간 전 85
181209 [컴퓨터] 컴퓨터본체 방밖으로 옮긴 개붕이 있냐... 13 크크르큭 1 9 시간 전 235
181208 [컴퓨터] 메인보드 AS 받아본 개붕이 있어? 5 일라일라 0 9 시간 전 100
181207 [잡담] 집에 500메가 인터넷 요금 쓰는데 100메가 밖에 안나옴 12 에베 0 10 시간 전 218
181206 [컴퓨터] 블루투스 리시버 있으면 무선마우스 리시버 따로 필요 업음? 2 ㅋㅋㄹㅃㅂ 0 10 시간 전 68
181205 [모바일] 에어팟프로 한쪽 유닛만 파는거 사본 개붕이 있음? 1 바세린립밥 0 11 시간 전 75
181204 [모바일] [아이패드 프로 M4]패드로 손글씨 영상 만들어봤어유 11 고오급판때기 1 14 시간 전 161
181203 [잡담] 아침부터 게임패드 고장났다 2기 1 오브 0 15 시간 전 153
181202 [잡담] 오 쿨링팬만 탈착식인 글카 2 Gargantua 0 16 시간 전 147
181201 [모바일] 갤탭 s9 vs 아이패드 에어 6세대 12 홀그레인머스타드 0 16 시간 전 193
181200 [프로그래밍] 하이브리드 웹뷰기반 앱은 rn이 정석이야? 3 잠적자 0 22 시간 전 165
181199 [컴퓨터] 닌텐도 스위치 캡쳐보드 이용해서 노트북으로 하는데 1 바보멍청잇 0 1 일 전 242
181198 [모바일] 아이폰 대리점 구매하려는 데 잘 아는 사람? 10 kicki 0 1 일 전 156
181197 [컴퓨터] 새컴퓨터에 새모니터를 샀는데 모니터가 신호없음 7 paperback 0 1 일 전 140