728x90
코뮤니티 모각코+ 앱 안드로이드 출석 인증 8일차
✅ 오늘의 문제 : 로또번호추첨앱 기능 완성하기
✔ 본인의 수준에 맞는 난이도를 선택하여 과제를 수행해주세요.
✔ 우측 하단의 버튼을 누를 때마다 랜덤한(겹치지 않는) 숫자 6개가 표시되고, 해당 숫자에 맞는 배경색으로 바뀝니다.
코드
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/runButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginEnd="32dp"
android:layout_marginBottom="32dp"
app:srcCompat="@android:drawable/ic_menu_rotate" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<Button
android:id="@+id/button1"
android:layout_width="70dp"
android:layout_height="80dp"
android:backgroundTint="#99C8C2C2"
app:cornerRadius="80dp"
android:textSize="25dp"/>
<Button
android:id="@+id/button2"
android:layout_width="70dp"
android:layout_height="80dp"
android:backgroundTint="#99C8C2C2"
app:cornerRadius="80dp"
android:textSize="25dp"/>
<Button
android:id="@+id/button3"
android:layout_width="70dp"
android:layout_height="80dp"
android:backgroundTint="#99C8C2C2"
app:cornerRadius="80dp"
android:textSize="25dp"/>
<Button
android:id="@+id/button4"
android:layout_width="70dp"
android:layout_height="80dp"
android:backgroundTint="#99C8C2C2"
app:cornerRadius="80dp"
android:textSize="25dp"/>
<Button
android:id="@+id/button5"
android:layout_width="70dp"
android:layout_height="80dp"
android:backgroundTint="#99C8C2C2"
app:cornerRadius="80dp"
android:textSize="25dp"/>
<Button
android:id="@+id/button6"
android:layout_width="70dp"
android:layout_height="80dp"
android:backgroundTint="#99C8C2C2"
app:cornerRadius="80dp"
android:textSize="25dp"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity.kt
package com.cookandroid.myapplication
import android.content.res.ColorStateList
import android.graphics.Color
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import com.google.android.material.floatingactionbutton.FloatingActionButton
import java.util.*
class MainActivity : AppCompatActivity() {
private val random = Random()
private val numbers = arrayListOf<Int>()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val num1 = findViewById<Button>(R.id.button1)
val num2 = findViewById<Button>(R.id.button2)
val num3 = findViewById<Button>(R.id.button3)
val num4 = findViewById<Button>(R.id.button4)
val num5 = findViewById<Button>(R.id.button5)
val num6 = findViewById<Button>(R.id.button6)
findViewById<FloatingActionButton>(R.id.runButton).setOnClickListener {
numbers.clear()
setLottoNum(num1)
setLottoNum(num2)
setLottoNum(num3)
setLottoNum(num4)
setLottoNum(num5)
setLottoNum(num6)
}
}
private fun setLottoNum(lottoNum: Button) {
var num = 0
while (true) {
num = random.nextInt(45) + 1
if ( !numbers.contains(num) ) {
numbers.add(num)
break
}
}
lottoNum.text = "${num}"
if ( num <= 10 ) {
lottoNum.backgroundTintList = ColorStateList.valueOf(Color.rgb(250,225,40))
} else if (num <= 20) {
lottoNum.backgroundTintList = ColorStateList.valueOf(Color.rgb(0,0,225))
} else if (num <= 30) {
lottoNum.backgroundTintList = ColorStateList.valueOf(Color.rgb(225,0,0))
} else if (num <= 40 ) {
lottoNum.backgroundTintList = ColorStateList.valueOf(Color.rgb(150,150,150))
} else {
lottoNum.backgroundTintList = ColorStateList.valueOf(Color.rgb(0,225,0))
}
}
}
결과
728x90
'개발 > 코뮤니티' 카테고리의 다른 글
[앱 안드로이드] 9일차 : 앱 아이콘, 앱 이름 변경하기 (0) | 2021.11.22 |
---|---|
[앱 안드로이드] 7일차 : 6개 버튼 텍스트, 색깔 변경하기 (0) | 2021.11.18 |
[앱 안드로이드] 6일차 : 앱 레이아웃 만들기 (0) | 2021.11.17 |