728x90
17일차
30개 프로젝트로 배우는 Android 앱 개발 with Kotlin 초격차 패키지 Online
강의 목표
- 프로젝트를 따라해보며 앱개발에 필요한 기술을 학습할 수 있습니다.
- 프로젝트를 따라해보며 앱개발에 필요한 기술을 학습할 수 있습니다.
- 앱 개발시 원하는 기능을 구현하기 위해 어떤 기술이 필요한 지 알 수 있습니다.
- 디자인 아키텍처 패턴, 비동기 처리 등 효율적인 앱 개발 방법을 익힐 수 있습니다.
목차 02 Basic - Ch02. 로또 번호 추첨기
인트로(완성앱&구현기능소개)Collection 개념 소개로또 번호 추첨 알고리즘 생각해보기Constraintlayout 이용하여 기본 UI 그리기(1)Constraintlayout 이용하여 기본 UI 그리기(2)기능 구현하기(1)- 기능 구현하기(2)
- Resource를 이용하여 꾸며보기
- 아웃트로(정리)
기능 구현하기(2)
- 랜덤번호 추출 시, 이미 선택하여 추가한 번호를 제외하고 숫자를 뽑아야 한다
- 이미 선택된 번호와, 중복되지 않는 리스트를 합쳐 반환하도록 getRandomNumber() 함수를 수정한다
private fun getRandomNumber(): List<Int> {
val numberList = mutableListOf<Int>().apply {
for(i in 1..45) {
if(pickNumberSet.contains(i)) continue
this.add(i)
}
}
numberList.shuffle()
return pickNumberSet.toList() + numberList.subList(0,6 - pickNumberSet.size).sorted()
}
- shuffle하여 일부분만 추출하기 전, 이미 선택한 번호를 제외하고 초기화 한다
- 먼저 선택한 리스트와 후에 중복없이 추출한 리스트를 합친다
- 자동 생성 버튼을 눌러 getRandomNumber() 함수를 통해 6개의 리스트를 모두 받아올 수 있다
- 받아온 리스트를 반복문을 통하여 textView 부분에 표시해준다
private fun initRunButton() {
runButton.setOnClickListener {
val list = getRandomNumber()
didRun = true
list.forEachIndexed { idx, num ->
val textView = numberTextViewList[idx]
textView.text = num.toString()
textView.isVisible = true
}
}
}
- forEachIndexed 문을 이용하면 순회하면서 원소 자체와 인덱스 모두 접근할 수 있다
- View 파트의 text값과 visibility를 수정해준다
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
수강인증샷
링크
728x90
'Android > Challenge' 카테고리의 다른 글
패스트캠퍼스 챌린지 19일차 (0) | 2022.02.11 |
---|---|
패스트캠퍼스 챌린지 18일차 (0) | 2022.02.10 |
패스트캠퍼스 챌린지 16일차 (0) | 2022.02.08 |
패스트캠퍼스 챌린지 15일차 (0) | 2022.02.07 |
패스트캠퍼스 챌린지 14일차 (0) | 2022.02.06 |