어제 블라인드 ON, OFF까지 배웠습니다.
그러면 이제 또 어떤 기능을 넣어볼까요? 어떤 기능을 넣어야 좋을까요?
음.. 뒤로 가기를 넣어보면 어떻까요?
참가자를 잘못 선정해서, 원래는 2명이면 될 것을 3명이 하게 되었습니다.
이때 뒤로 가기가 있어서, 처음으로 돌아가면 좋겠죠?
처음으로 돌아가는 것에 대해서 만들어보겠습니다.
이제는 충분히 혼자서도 만들 수 있을 것 같지만, 그래도 끝까지 같이 해봅시다.
메인에서 만져줘야겠죠?
버튼을 만들어줍시다. id는 btn_back으로 했고, 화면을 이런 식으로 만져주었습니다.
이 것을 메인 함수에다가 넣어줍시다.
val btn_back: Button = findViewById(R.id.btn_back)
버튼을 만들었고..
이 버튼을 클릭하면 어떻게 하는 게 좋을까요?
그냥 스타트 함수로 시작하면 되겠죠?
btn.setOnClickListener {
start()
}
이 것을 넣어보겠습니다.
또한 기록을 지우고, a=1로 만드는 것을 다시 만들어주겠습니다.
아래 end에 있는 내용을 그대로 해보겠습니다.
btn_back.setOnClickListener {
point_list.clear()
a = 1
p_num = 3
start()
}
자 봐볼까요?
이런식으로 end 끝에 있는 것을 가지고 왔습니다.
이렇게 뒤로가기를 누르니까, 뒤로 갑니다. 아주 좋아요.
이제 기본적인 어플 만들기에 대해서 완성이 되어가네요. 마무리가 되어갑니다.
한번 처음부터 쭉 내용을 작성해볼게요.
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import java.lang.Math.abs
import java.util.*
class MainActivity() : AppCompatActivity() {
var p_num = 3
var a = 1
val point_list = mutableListOf<Float>()
var isBlind = false
fun start(){
setContentView(R.layout.activity_start)
val abc: TextView = findViewById(R.id.text_pnum)
val btn_minus: Button = findViewById(R.id.btn_minus)
val btn_plus: Button = findViewById(R.id.btn_plus)
val btn_start: Button = findViewById(R.id.btn_back)
val btn_blind: Button = findViewById(R.id.btn_blind)
btn_blind.setOnClickListener {
isBlind = !isBlind
if (isBlind == true) {
btn_blind.text = "Blind 모드 ON"
} else {
btn_blind.text = "Blind 모드 OFF"
}
}
abc.text = p_num.toString()
btn_minus.setOnClickListener{
p_num --
if (p_num == 0) {
p_num = 1
}
abc.text = p_num.toString()
}
btn_plus.setOnClickListener{
p_num ++
if (p_num == 4)
{ p_num = 3}
abc.text = p_num.toString()
}
btn_start.setOnClickListener{
main()
}
}
fun main() {
setContentView(R.layout.activity_main)
var timerTask: Timer? = null
var stage = 1
var sec: Int = 0
val abc: TextView = findViewById(R.id.text_pnum)
val abc_1: TextView = findViewById(R.id.text_time)
val abc_2: TextView = findViewById(R.id.text_point)
val abc_3: TextView = findViewById(R.id.text_people)
val btn: Button = findViewById(R.id.btn_start2)
val btn_back: Button = findViewById(R.id.btn_back)
val random = Random()
val num = random.nextInt(1001)
abc.text = ((num.toFloat()) / 100).toString()
btn.text = "시작"
abc_3.text = "참가자 $a"
btn_back.setOnClickListener {
point_list.clear()
a = 1
p_num = 3
start()
}
btn.setOnClickListener {
stage++
if (stage == 2) {
timerTask = kotlin.concurrent.timer(period = 10) {
sec++
runOnUiThread {
if (isBlind == false) {
abc_1.text = (sec.toFloat() / 100).toString()
} else if (isBlind == true && stage == 2) {
abc_1.text = "???"
}
}
}
btn.text = "정지"
} else if (stage == 3) {
abc_1.text = (sec.toFloat() / 100). toString()
timerTask?.cancel()
val point = (abs(sec-num).toFloat())/100
point_list.add(point)
abc_2.text = point.toString()
btn.text = "다음"
stage = 0
} else if (stage == 1) {
if (a < p_num) {
a++
main()
} else {
end()
}
}
}
}
fun end() {
setContentView(R.layout.activity_end)
val text_end2: TextView = findViewById(R.id.text_end2)
val text_end3: TextView = findViewById(R.id.text_end3)
val btn_end1: Button = findViewById(R.id.btn_end1)
text_end3.text = (point_list.maxOrNull()).toString()
var index_last = point_list.indexOf(point_list.maxOrNull())
text_end2.text = "참가자" + (index_last+1).toString()
btn_end1.setOnClickListener(){
point_list.clear()
a = 1
p_num = 3
start()
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
start()
}}
import까지 넣었습니다.
이렇게 완성이 되었네요. 정말 길고 긴 대 장정이었던 것 같습니다.
하나씩 하면서 배우니까, 이제 좀 눈에 익지 않나요?
이제 내일부터는 꾸미기에 대해서 좀 해보겠습니다.
안드로이드 스튜디어 스톱워치 로직 완성!! 이었습니다.
여러 단계가 있었지만, 한 번씩 확인해봐요!
android studio설치 다운로드하기 안드로이드 앱 만들기#1
안드로이드 스튜디오 앱 초기 상태로 되돌리기(#앱 16)
'코딩 어플만들기' 카테고리의 다른 글
참가자 수에 따라 어플에 색깔 바꿔넣기 앱#23 (0) | 2022.04.08 |
---|---|
안드로이드 스튜디오 색 변경하기 (버튼, 배경) 앱#22 (0) | 2022.04.07 |
안드로이드 스튜디오 어플에 블라인드 넣기(앱#21) (0) | 2022.04.04 |
안드로이드 앱에 블라인드 넣기(앱#21) (0) | 2022.04.03 |
안드로이드 어플 종료화면 만들기(앱 만들기#20) (0) | 2022.04.01 |